]> git.baikalelectronics.ru Git - kernel.git/commit
iio: common: st_sensors: fix channel data parsing
authorLorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Wed, 16 Nov 2016 21:15:28 +0000 (22:15 +0100)
committerJonathan Cameron <jic23@kernel.org>
Sat, 31 Dec 2016 14:32:09 +0000 (14:32 +0000)
commit12ebf470a581f90c19f08a724abe35a0374cf97c
treef16e596bed7448b837e52ddd5da385636de27003
parent2f7d98fd64e9c08b61de4de17dd31de72baf0081
iio: common: st_sensors: fix channel data parsing

Using realbits as i2c/spi read len, when that value is not byte aligned
(e.g 12 bits), lead to skip msb part of out data registers.
Fix this taking into account scan_type.shift in addition to
scan_type.realbits as read length:

read_len = DIV_ROUND_UP(realbits + shift, 8)

This fix has been tested on 8, 12, 16, 24 bit sensors

Fixes: 2a9103d907dc ("iio:st_sensors: align on storagebits boundaries")
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/common/st_sensors/st_sensors_buffer.c
drivers/iio/common/st_sensors/st_sensors_core.c