patch "iio: imu: st_lsm6dsx: fix ODR check in st_lsm6dsx_write_raw" added to staging-next
Subsystems (3)
This is a note to let you know that I've just added the patch titled
iio: imu: st_lsm6dsx: fix ODR check in st_lsm6dsx_write_raw
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-next branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will also be merged in the next major kernel release during the merge window.
If you have any questions about this process, please let me know.
From fc3f6ad7f5dc6c899fbda0255865737bac88c2e0 Mon Sep 17 00:00:00 2001
From: Lorenzo Bianconi <[email protected]>
Date: Sun, 27 Oct 2019 19:02:30 +0100
Subject: iio: imu: st_lsm6dsx: fix ODR check in st_lsm6dsx_write_raw
Since st_lsm6dsx i2c master controller relies on accel device as trigger and slave devices can run at different ODRs we must select an accel_odr >= slave_odr. Report real accel ODR in st_lsm6dsx_check_odr() in order to properly set sensor frequency in st_lsm6dsx_write_raw and avoid to report unsupported frequency
--- drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c +5 -4
@@ -1377,8 +1377,7 @@ int st_lsm6dsx_check_odr(struct st_lsm6dsx_sensor *sensor, u16 odr, u8 *val)return -EINVAL ; *val = odr_table->odr_avl[i].val; - -return 0 ; +return odr_table->odr_avl[i].hz; } static u16 st_lsm6dsx_check_odr_dependency(struct st_lsm6dsx_hw *hw, u16 odr,
@@ -1542,8 +1541,10 @@ static int st_lsm6dsx_write_raw(struct iio_dev *iio_dev,case IIO_CHAN_INFO_SAMP_FREQ : {u8 data; - err =st_lsm6dsx_check_odr (sensor, val, &data); -if (!err) + val =st_lsm6dsx_check_odr (sensor, val, &data); +if (val <0 ) + err = val; +else sensor->odr = val;break ; }
Signature · 1 line
2.24.0