Re: [PATCH] iio: imu: st_lsm6dsx: Update enable mask when using sensor fusion
Lorenzo Bianconi <[email protected]> Fri, 31 Jul 2026 22:44:44 +0200
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <am0JPMfepRUkMNfy@lore-qca> |
> 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 <[email protected]> > > Fixes: cd4e1141bff8 ("iio: imu: st_lsm6dsx: Add support for rotation sensor") > Signed-off-by: Francesco Lavra <[email protected]> > --- > 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 >
signature.asc
(application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQTquNwa3Txd3rGGn7Y6cBh0uS2trAUCam0JPAAKCRA6cBh0uS2t rFpSAP0bg7JRxu5b8/ZfMWnP4vMa4ye90ZtH+ojMN/lBhLhORwD+Jkte54B6STtW IFlCcf/05yni+S1EuMNdOmiyAv0Pswk= =LzDt -----END PGP SIGNATURE-----