]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: imu: inv_icm42600: fix timestamp clock period by using lower value
authorJean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Tue, 23 Jun 2026 14:22:15 +0000 (16:22 +0200)
committerJonathan Cameron <jic23@kernel.org>
Mon, 6 Jul 2026 15:54:55 +0000 (16:54 +0100)
Clock period value is used for computing periods of sampling. There is
no need for it to be higher than the maximum odr, otherwise we are
losing precision in the computation for nothing.

Switch clock period value to maximum odr period (8kHz).

Fixes: 0ecc363ccea7 ("iio: make invensense timestamp module generic")
Cc: stable@vger.kernel.org
Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c

index 532d5fdffaf8d89dd296da2b5d6dafb3a76ef551..7df920ef3cf08b9478e21dd4b4c0a4c1e1e23d76 100644 (file)
@@ -1170,10 +1170,10 @@ struct iio_dev *inv_icm42600_accel_init(struct inv_icm42600_state *st)
        accel_st->filter = INV_ICM42600_FILTER_AVG_16X;
 
        /*
-        * clock period is 32kHz (31250ns)
+        * clock period is 8kHz (125000ns)
         * jitter is +/- 2% (20 per mille)
         */
-       ts_chip.clock_period = 31250;
+       ts_chip.clock_period = 125000;
        ts_chip.jitter = 20;
        ts_chip.init_period = inv_icm42600_odr_to_period(st->conf.accel.odr);
        inv_sensors_timestamp_init(&accel_st->ts, &ts_chip);
index 11339ddf1da36c85e56de6c4a95486713cbd182a..a18dcac939298a5f93aeb30518fca85ef0366463 100644 (file)
@@ -755,10 +755,10 @@ struct iio_dev *inv_icm42600_gyro_init(struct inv_icm42600_state *st)
        }
 
        /*
-        * clock period is 32kHz (31250ns)
+        * clock period is 8kHz (125000ns)
         * jitter is +/- 2% (20 per mille)
         */
-       ts_chip.clock_period = 31250;
+       ts_chip.clock_period = 125000;
        ts_chip.jitter = 20;
        ts_chip.init_period = inv_icm42600_odr_to_period(st->conf.accel.odr);
        inv_sensors_timestamp_init(&gyro_st->ts, &ts_chip);