OSDN Git Service

iio: stk8ba50: Use scan_type when processing raw data
authorGwendal Grignou <gwendal@chromium.org>
Thu, 4 Nov 2021 08:24:06 +0000 (01:24 -0700)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 17 Nov 2021 17:51:42 +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-7-gwendal@chromium.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/accel/stk8ba50.c

index e137a34..517c57e 100644 (file)
@@ -227,7 +227,8 @@ static int stk8ba50_read_raw(struct iio_dev *indio_dev,
                        mutex_unlock(&data->lock);
                        return -EINVAL;
                }
-               *val = sign_extend32(ret >> STK8BA50_DATA_SHIFT, 9);
+               *val = sign_extend32(ret >> chan->scan_type.shift,
+                                    chan->scan_type.realbits - 1);
                stk8ba50_set_power(data, STK8BA50_MODE_SUSPEND);
                mutex_unlock(&data->lock);
                return IIO_VAL_INT;