Re: [PATCH 2/2] iio: proximity: sx9500: Fix proximity value

From: Jonathan Cameron
Date: Sat Jun 13 2015 - 14:21:34 EST


On 12/06/15 08:40, Vlad Dogaru wrote:
> On Thu, Jun 11, 2015 at 06:49:34PM +0300, Daniel Baluta wrote:
>> Because of the ABI confusion proximity value exposed by SX9500
>> was inverted.
>>
>> Signed-off-by: Daniel Baluta <daniel.baluta@xxxxxxxxx>
>
> Reviewed-by: Vlad Dogaru <vlad.dogaru@xxxxxxxxx>
>
> Sorry for causing the confusion, it was the only proximity sensor I had
> encountered to date.
Greg,

I've cc'd you to let you know that this fix causes an ABI change for
one driver. Technically that driver actually matched with the current documentation,
just the documentation was misleading and lots of drivers have ended up with
the reverse interpretation (question was whether proximity values get larger
or smaller as you get nearer).

Anyhow, given timing I doubt the pull request will reach you until after the
merge window. I am also going to mark this for stable to cover the 4.0 and 4.1
kernels that have this driver in them.

Hope that's fine!

Applied to the fixes-togreg branch of iio.git

Daniel, thanks for clearing this mess up and checking through all the drivers
and datasheets to figure out it was only this one!

Jonathan

>
>> ---
>> drivers/iio/proximity/sx9500.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c
>> index 2042e37..01494cd 100644
>> --- a/drivers/iio/proximity/sx9500.c
>> +++ b/drivers/iio/proximity/sx9500.c
>> @@ -281,7 +281,7 @@ static int sx9500_read_prox_data(struct sx9500_data *data,
>> if (ret < 0)
>> return ret;
>>
>> - *val = 32767 - (s16)be16_to_cpu(regval);
>> + *val = be16_to_cpu(regval);
>>
>> return IIO_VAL_INT;
>> }
>> --
>> 1.9.1
>>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/