mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
iio: imu: st_lsm6dsx: fix array size for st_lsm6dsx_settings fields
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: 801a6e0af0 ("iio: imu: st_lsm6dsx: add support to LSM6DSO")
Signed-off-by: Francesco Lavra <flavra@baylibre.com>
Acked-by: Lorenzo Bianconi <lorenzo@kernel.org>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
committed by
Jonathan Cameron
parent
c92c1bc408
commit
3af0c1fb1c
@@ -252,6 +252,15 @@ struct st_lsm6dsx_event_settings {
|
|||||||
u8 wakeup_src_x_mask;
|
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 {
|
enum st_lsm6dsx_ext_sensor_id {
|
||||||
ST_LSM6DSX_ID_MAGN,
|
ST_LSM6DSX_ID_MAGN,
|
||||||
};
|
};
|
||||||
@@ -337,23 +346,14 @@ struct st_lsm6dsx_settings {
|
|||||||
struct st_lsm6dsx_odr_table_entry odr_table[2];
|
struct st_lsm6dsx_odr_table_entry odr_table[2];
|
||||||
struct st_lsm6dsx_samples_to_discard samples_to_discard[2];
|
struct st_lsm6dsx_samples_to_discard samples_to_discard[2];
|
||||||
struct st_lsm6dsx_fs_table_entry fs_table[2];
|
struct st_lsm6dsx_fs_table_entry fs_table[2];
|
||||||
struct st_lsm6dsx_reg decimator[ST_LSM6DSX_MAX_ID];
|
struct st_lsm6dsx_reg decimator[ST_LSM6DSX_ID_MAX];
|
||||||
struct st_lsm6dsx_reg batch[ST_LSM6DSX_MAX_ID];
|
struct st_lsm6dsx_reg batch[2];
|
||||||
struct st_lsm6dsx_fifo_ops fifo_ops;
|
struct st_lsm6dsx_fifo_ops fifo_ops;
|
||||||
struct st_lsm6dsx_hw_ts_settings ts_settings;
|
struct st_lsm6dsx_hw_ts_settings ts_settings;
|
||||||
struct st_lsm6dsx_shub_settings shub_settings;
|
struct st_lsm6dsx_shub_settings shub_settings;
|
||||||
struct st_lsm6dsx_event_settings event_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 {
|
enum st_lsm6dsx_fifo_mode {
|
||||||
ST_LSM6DSX_FIFO_BYPASS = 0x0,
|
ST_LSM6DSX_FIFO_BYPASS = 0x0,
|
||||||
ST_LSM6DSX_FIFO_CONT = 0x6,
|
ST_LSM6DSX_FIFO_CONT = 0x6,
|
||||||
|
|||||||
Reference in New Issue
Block a user