]> 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)
commit70a1337c4ea01b5541320ff2a48d3f6aa7bc20e9
treef16e596bed7448b837e52ddd5da385636de27003
parent77c61ae610a75ff9f686b4f37738de7b5d1cdcc4
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: 798f4a567aba ("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