mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 01:04:19 +08:00
iio: imu: st_lsm6dsx: wait for settling time in st_lsm6dsx_read_oneshot
commitea85bf9064
upstream. 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:290a6ce11d
("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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c77f4ae7bd
commit
1f05c75684
@ -1372,8 +1372,12 @@ static int st_lsm6dsx_read_oneshot(struct st_lsm6dsx_sensor *sensor,
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
/*
|
||||
* we need to wait for sensor settling time before
|
||||
* reading data in order to avoid corrupted samples
|
||||
*/
|
||||
delay = 1000000000 / sensor->odr;
|
||||
usleep_range(delay, 2 * delay);
|
||||
usleep_range(3 * delay, 4 * delay);
|
||||
|
||||
err = st_lsm6dsx_read_locked(hw, addr, &data, sizeof(data));
|
||||
if (err < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user