> The `decimator` and `batch` fields of struct st_lsm6dsx_settings > are arrays indexed by sensor type, not by sensor hardware > identifier; moreover, the `batch` field is only used for the > accelerometer and gyroscope. > Change the array size for `decimator` from ST_LSM6DSX_MAX_ID to > ST_LSM6DSX_ID_MAX, and change the array size for `batch` from > ST_LSM6DSX_MAX_ID to 2; move the enum st_lsm6dsx_sensor_id > definition so that the ST_LSM6DSX_ID_MAX value is usable within > the struct st_lsm6dsx_settings definition. > > Fixes: 801a6e0af0c6c ("iio: imu: st_lsm6dsx: add support to LSM6DSO") > Signed-off-by: Francesco Lavra Acked-by: Lorenzo Bianconi > --- > drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h > index 3cd520bdec46..a4f558899767 100644 > --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h > +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h > @@ -252,6 +252,15 @@ struct st_lsm6dsx_event_settings { > u8 wakeup_src_x_mask; > }; > > +enum st_lsm6dsx_sensor_id { > + ST_LSM6DSX_ID_GYRO, > + ST_LSM6DSX_ID_ACC, > + ST_LSM6DSX_ID_EXT0, > + ST_LSM6DSX_ID_EXT1, > + ST_LSM6DSX_ID_EXT2, > + ST_LSM6DSX_ID_MAX, > +}; > + > enum st_lsm6dsx_ext_sensor_id { > ST_LSM6DSX_ID_MAGN, > }; > @@ -337,23 +346,14 @@ struct st_lsm6dsx_settings { > struct st_lsm6dsx_odr_table_entry odr_table[2]; > struct st_lsm6dsx_samples_to_discard samples_to_discard[2]; > struct st_lsm6dsx_fs_table_entry fs_table[2]; > - struct st_lsm6dsx_reg decimator[ST_LSM6DSX_MAX_ID]; > - struct st_lsm6dsx_reg batch[ST_LSM6DSX_MAX_ID]; > + struct st_lsm6dsx_reg decimator[ST_LSM6DSX_ID_MAX]; > + struct st_lsm6dsx_reg batch[2]; > struct st_lsm6dsx_fifo_ops fifo_ops; > struct st_lsm6dsx_hw_ts_settings ts_settings; > struct st_lsm6dsx_shub_settings shub_settings; > struct st_lsm6dsx_event_settings event_settings; > }; > > -enum st_lsm6dsx_sensor_id { > - ST_LSM6DSX_ID_GYRO, > - ST_LSM6DSX_ID_ACC, > - ST_LSM6DSX_ID_EXT0, > - ST_LSM6DSX_ID_EXT1, > - ST_LSM6DSX_ID_EXT2, > - ST_LSM6DSX_ID_MAX, > -}; > - > enum st_lsm6dsx_fifo_mode { > ST_LSM6DSX_FIFO_BYPASS = 0x0, > ST_LSM6DSX_FIFO_CONT = 0x6, > -- > 2.39.5 >