Skip to content

Commit ea85bf9

Browse files
LorenzoBianconijic23
authored andcommitted
iio: imu: st_lsm6dsx: wait for settling time in st_lsm6dsx_read_oneshot
We need to wait for sensor settling time (~ 3/ODR) before reading data in st_lsm6dsx_read_oneshot routine in order to avoid corrupted samples. Fixes: 290a6ce ("iio: imu: add support to lsm6dsx driver") Reported-by: Mario Tesi <mario.tesi@st.com> Tested-by: Mario Tesi <mario.tesi@st.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Link: https://lore.kernel.org/r/b41ebda5535895298716c76d939f9f165fcd2d13.1644098120.git.lorenzo@kernel.org Cc: <Stable@vger.kernel.org> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
1 parent 632fe0b commit ea85bf9

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1374,8 +1374,12 @@ static int st_lsm6dsx_read_oneshot(struct st_lsm6dsx_sensor *sensor,
13741374
if (err < 0)
13751375
return err;
13761376

1377+
/*
1378+
* we need to wait for sensor settling time before
1379+
* reading data in order to avoid corrupted samples
1380+
*/
13771381
delay = 1000000000 / sensor->odr;
1378-
usleep_range(delay, 2 * delay);
1382+
usleep_range(3 * delay, 4 * delay);
13791383

13801384
err = st_lsm6dsx_read_locked(hw, addr, &data, sizeof(data));
13811385
if (err < 0)

0 commit comments

Comments
 (0)