| From 5138806f16c74c7cb8ac3e408a859c79eb7c9567 Mon Sep 17 00:00:00 2001 |
| From: Matt Ranostay <mranostay@gmail.com> |
| Date: Sat, 21 May 2016 20:01:01 -0700 |
| Subject: iio: proximity: as3935: correct IIO_CHAN_INFO_RAW output |
| |
| From: Matt Ranostay <mranostay@gmail.com> |
| |
| commit 5138806f16c74c7cb8ac3e408a859c79eb7c9567 upstream. |
| |
| IIO_CHAN_INFO_RAW was returning processed data which was incorrect. |
| This also adds the IIO_CHAN_INFO_SCALE value to convert to a processed value. |
| |
| Signed-off-by: Matt Ranostay <mranostay@gmail.com> |
| Signed-off-by: Jonathan Cameron <jic23@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| Documentation/ABI/testing/sysfs-bus-iio-proximity-as3935 | 2 +- |
| drivers/iio/proximity/as3935.c | 10 ++++++++-- |
| 2 files changed, 9 insertions(+), 3 deletions(-) |
| |
| --- a/Documentation/ABI/testing/sysfs-bus-iio-proximity-as3935 |
| +++ b/Documentation/ABI/testing/sysfs-bus-iio-proximity-as3935 |
| @@ -1,4 +1,4 @@ |
| -What /sys/bus/iio/devices/iio:deviceX/in_proximity_raw |
| +What /sys/bus/iio/devices/iio:deviceX/in_proximity_input |
| Date: March 2014 |
| KernelVersion: 3.15 |
| Contact: Matt Ranostay <mranostay@gmail.com> |
| --- a/drivers/iio/proximity/as3935.c |
| +++ b/drivers/iio/proximity/as3935.c |
| @@ -72,7 +72,8 @@ static const struct iio_chan_spec as3935 |
| .type = IIO_PROXIMITY, |
| .info_mask_separate = |
| BIT(IIO_CHAN_INFO_RAW) | |
| - BIT(IIO_CHAN_INFO_PROCESSED), |
| + BIT(IIO_CHAN_INFO_PROCESSED) | |
| + BIT(IIO_CHAN_INFO_SCALE), |
| .scan_index = 0, |
| .scan_type = { |
| .sign = 'u', |
| @@ -181,7 +182,12 @@ static int as3935_read_raw(struct iio_de |
| /* storm out of range */ |
| if (*val == AS3935_DATA_MASK) |
| return -EINVAL; |
| - *val *= 1000; |
| + |
| + if (m == IIO_CHAN_INFO_PROCESSED) |
| + *val *= 1000; |
| + break; |
| + case IIO_CHAN_INFO_SCALE: |
| + *val = 1000; |
| break; |
| default: |
| return -EINVAL; |