Re: [PATCH] iio: imu: st_lsm6dsx: Update enable mask when using sensor fusion

From: Lorenzo Bianconi

Date: Fri Jul 31 2026 - 16:47:37 EST


> The enable_mask struct member keeps track of which sensors are enabled in
> the IMU. When enabling and disabling the sensor fusion functionality, the
> driver does not properly update this struct member. This prevents a correct
> calculation of the number of samples that should be read from the hardware
> FIFO; as a result, reads from the FIFO can be unnecessarily split into
> multiple transactions, some of which can read past the FIFO length.

Acked-by: Lorenzo Bianconi <lorenzo@xxxxxxxxxx>

>
> Fixes: cd4e1141bff8 ("iio: imu: st_lsm6dsx: Add support for rotation sensor")
> Signed-off-by: Francesco Lavra <flavra@xxxxxxxxxxxx>
> ---
> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c
> index 2e72c7ba94dd..5321033daebc 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_fusion.c
> @@ -112,6 +112,11 @@ int st_lsm6dsx_fusion_set_enable(struct st_lsm6dsx_sensor *sensor, bool enable)
> return err;
> }
>
> + if (enable)
> + hw->enable_mask |= BIT(ST_LSM6DSX_ID_FUSION);
> + else
> + hw->enable_mask &= ~BIT(ST_LSM6DSX_ID_FUSION);
> +
> return st_lsm6dsx_fusion_page_disable(hw);
> }
>
> --
> 2.39.5
>

Attachment: signature.asc
Description: PGP signature