[PATCH V7 10/11] iio: imu: inv_icm42607: Add Gyroscope to icm42607
Jonathan Cameron
jic23 at kernel.org
Fri May 15 12:44:33 PDT 2026
On Fri, 15 May 2026 08:00:15 -0500
Chris Morgan <macroalpha82 at gmail.com> wrote:
> From: Chris Morgan <macromorgan at hotmail.com>
>
> Add gyroscope functions to the icm42607 driver.
>
> Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
Hi Chris last one I'm getting to today...
> @@ -499,9 +512,10 @@ int inv_icm42607_buffer_fifo_parse(struct inv_icm42607_state *st)
> int inv_icm42607_buffer_hwfifo_flush(struct inv_icm42607_state *st,
> unsigned int count)
> {
> + struct inv_icm42607_sensor_state *gyro_st = iio_priv(st->indio_gyro);
> struct inv_icm42607_sensor_state *accel_st = iio_priv(st->indio_accel);
> struct inv_sensors_timestamp *ts;
> - s64 accel_ts;
> + s64 gyro_ts, accel_ts;
Most of what sashiko got matched the earlier accelerometer driver but this
is a good catch. you never initialize gyro_ts unlike accel_ts:
accel_ts = iio_get_time_ns(st->indio_accel);
> int ret;
>
> accel_ts = iio_get_time_ns(st->indio_accel);
> @@ -513,6 +527,14 @@ int inv_icm42607_buffer_hwfifo_flush(struct inv_icm42607_state *st,
> if (st->fifo.nb.total == 0)
> return 0;
>
> + if (st->fifo.nb.gyro > 0) {
> + ts = &gyro_st->ts;
> + inv_sensors_timestamp_interrupt(ts, st->fifo.nb.gyro, gyro_ts);
> + ret = inv_icm42607_gyro_parse_fifo(st->indio_gyro);
> + if (ret)
> + return ret;
> + }
> +
> if (st->fifo.nb.accel > 0) {
> ts = &accel_st->ts;
> inv_sensors_timestamp_interrupt(ts, st->fifo.nb.accel, accel_ts);
More information about the Linux-rockchip
mailing list