From: Gwendal Grignou Date: Thu, 4 Nov 2021 08:24:09 +0000 (-0700) Subject: iio: ti-adc12138: Use scan_type when processing raw data X-Git-Tag: v6.1-rc5~2218^2~40^2~71 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a5cd0e7f5b3cda94b9f4029b8baef817a7a97226;p=platform%2Fkernel%2Flinux-starfive.git iio: ti-adc12138: Use scan_type when processing raw data Use channel definition as root of trust and replace constant when reading elements directly using the raw sysfs attributes. Signed-off-by: Gwendal Grignou Link: https://lore.kernel.org/r/20211104082413.3681212-10-gwendal@chromium.org Signed-off-by: Jonathan Cameron --- diff --git a/drivers/iio/adc/ti-adc12138.c b/drivers/iio/adc/ti-adc12138.c index fcd5d39..5b5d452 100644 --- a/drivers/iio/adc/ti-adc12138.c +++ b/drivers/iio/adc/ti-adc12138.c @@ -239,7 +239,8 @@ static int adc12138_read_raw(struct iio_dev *iio, if (ret) return ret; - *value = sign_extend32(be16_to_cpu(data) >> 3, 12); + *value = sign_extend32(be16_to_cpu(data) >> channel->scan_type.shift, + channel->scan_type.realbits - 1); return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: