On Tue, 17 Sep 2019 00:01:29 +0200 Lorenzo Bianconi <lorenzo@xxxxxxxxxx> wrote: > i2c controller available in st_lsm6dsx series performs i2c slave > configuration using accel clock as trigger. > st_lsm6dsx_shub_wait_complete routine is used to wait the controller has > carried out the requested configuration. However if the accel sensor is not > enabled we should not use its configured odr to estimate a proper timeout > > Fixes: c91c1c844ebd ("iio: imu: st_lsm6dsx: add i2c embedded controller support") > Signed-off-by: Lorenzo Bianconi <lorenzo@xxxxxxxxxx> Marked for stable and applied to the fixes-togreg branch of iio.git. This one seems completely tangential to the stuff applied to the togreg branch so shouldn't cause any merge problems. Thanks, Jonathan > --- > drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > index 66fbcd94642d..4c754a02717b 100644 > --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c > @@ -92,9 +92,11 @@ static const struct st_lsm6dsx_ext_dev_settings st_lsm6dsx_ext_dev_table[] = { > static void st_lsm6dsx_shub_wait_complete(struct st_lsm6dsx_hw *hw) > { > struct st_lsm6dsx_sensor *sensor; > + u16 odr; > > sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]); > - msleep((2000U / sensor->odr) + 1); > + odr = (hw->enable_mask & BIT(ST_LSM6DSX_ID_ACC)) ? sensor->odr : 13; > + msleep((2000U / odr) + 1); > } > > /**