iio: kxcjk-1013: Use scan_type when processing raw data
authorGwendal Grignou <gwendal@chromium.org>
Thu, 4 Nov 2021 08:24:02 +0000 (01:24 -0700)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 17 Nov 2021 17:51:40 +0000 (17:51 +0000)
Use channel definition as root of trust and replace constant
when reading elements directly using the raw sysfs attributes.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Link: https://lore.kernel.org/r/20211104082413.3681212-3-gwendal@chromium.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/accel/kxcjk-1013.c

index a51fdd3c9b5b5b6bdfa059cceb3086fa0adfa62f..88cf0c276893aae848e49d8dc43c90a98d3f3b5e 100644 (file)
@@ -927,7 +927,8 @@ static int kxcjk1013_read_raw(struct iio_dev *indio_dev,
                                mutex_unlock(&data->mutex);
                                return ret;
                        }
-                       *val = sign_extend32(ret >> 4, 11);
+                       *val = sign_extend32(ret >> chan->scan_type.shift,
+                                            chan->scan_type.realbits - 1);
                        ret = kxcjk1013_set_power_state(data, false);
                }
                mutex_unlock(&data->mutex);