]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 10 Apr 2021 11:15:14 +0000 (13:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 10 Apr 2021 11:15:14 +0000 (13:15 +0200)
added patches:
iio-hid-sensor-prox-fix-scale-not-correct-issue.patch

queue-4.4/iio-hid-sensor-prox-fix-scale-not-correct-issue.patch [new file with mode: 0644]
queue-4.4/series [new file with mode: 0644]

diff --git a/queue-4.4/iio-hid-sensor-prox-fix-scale-not-correct-issue.patch b/queue-4.4/iio-hid-sensor-prox-fix-scale-not-correct-issue.patch
new file mode 100644 (file)
index 0000000..4b5bdef
--- /dev/null
@@ -0,0 +1,63 @@
+From foo@baz Sat Apr 10 01:12:46 PM CEST 2021
+From: Ye Xiang <xiang.ye@intel.com>
+Date: Sat, 30 Jan 2021 18:25:30 +0800
+Subject: iio: hid-sensor-prox: Fix scale not correct issue
+
+From: Ye Xiang <xiang.ye@intel.com>
+
+commit d68c592e02f6f49a88e705f13dfc1883432cf300 upstream
+
+Currently, the proxy sensor scale is zero because it just return the
+exponent directly. To fix this issue, this patch use
+hid_sensor_format_scale to process the scale first then return the
+output.
+
+Fixes: 39a3a0138f61 ("iio: hid-sensors: Added Proximity Sensor Driver")
+Signed-off-by: Ye Xiang <xiang.ye@intel.com>
+Link: https://lore.kernel.org/r/20210130102530.31064-1-xiang.ye@intel.com
+Cc: <Stable@vger.kernel.org>
+Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
+[sudip: adjust context]
+Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/iio/light/hid-sensor-prox.c |   14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+--- a/drivers/iio/light/hid-sensor-prox.c
++++ b/drivers/iio/light/hid-sensor-prox.c
+@@ -37,6 +37,9 @@ struct prox_state {
+       struct hid_sensor_common common_attributes;
+       struct hid_sensor_hub_attribute_info prox_attr;
+       u32 human_presence;
++      int scale_pre_decml;
++      int scale_post_decml;
++      int scale_precision;
+ };
+ /* Channel definitions */
+@@ -105,8 +108,9 @@ static int prox_read_raw(struct iio_dev
+               ret_type = IIO_VAL_INT;
+               break;
+       case IIO_CHAN_INFO_SCALE:
+-              *val = prox_state->prox_attr.units;
+-              ret_type = IIO_VAL_INT;
++              *val = prox_state->scale_pre_decml;
++              *val2 = prox_state->scale_post_decml;
++              ret_type = prox_state->scale_precision;
+               break;
+       case IIO_CHAN_INFO_OFFSET:
+               *val = hid_sensor_convert_exponent(
+@@ -240,6 +244,12 @@ static int prox_parse_report(struct plat
+                       st->common_attributes.sensitivity.index,
+                       st->common_attributes.sensitivity.report_id);
+       }
++
++      st->scale_precision = hid_sensor_format_scale(
++                              hsdev->usage,
++                              &st->prox_attr,
++                              &st->scale_pre_decml, &st->scale_post_decml);
++
+       return ret;
+ }
diff --git a/queue-4.4/series b/queue-4.4/series
new file mode 100644 (file)
index 0000000..a4acd38
--- /dev/null
@@ -0,0 +1 @@
+iio-hid-sensor-prox-fix-scale-not-correct-issue.patch