Skip to content

Commit 65a60a5

Browse files
jmaneyrol-invnjic23
authored andcommitted
iio: imu: inv_icm42600: fix timestamps after suspend if sensor is on
Currently suspending while sensors are one will result in timestamping continuing without gap at resume. It can work with monotonic clock but not with other clocks. Fix that by resetting timestamping. Fixes: ec74ae9 ("iio: imu: inv_icm42600: add accurate timestamping") Cc: [email protected] Signed-off-by: Jean-Baptiste Maneyrol <[email protected]> Link: https://patch.msgid.link/20241113-inv_icm42600-fix-timestamps-after-suspend-v1-1-dfc77c394173@tdk.com Signed-off-by: Jonathan Cameron <[email protected]>
1 parent c0f866d commit 65a60a5

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

drivers/iio/imu/inv_icm42600/inv_icm42600_core.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -829,6 +829,8 @@ static int inv_icm42600_suspend(struct device *dev)
829829
static int inv_icm42600_resume(struct device *dev)
830830
{
831831
struct inv_icm42600_state *st = dev_get_drvdata(dev);
832+
struct inv_icm42600_sensor_state *gyro_st = iio_priv(st->indio_gyro);
833+
struct inv_icm42600_sensor_state *accel_st = iio_priv(st->indio_accel);
832834
int ret;
833835

834836
mutex_lock(&st->lock);
@@ -849,9 +851,12 @@ static int inv_icm42600_resume(struct device *dev)
849851
goto out_unlock;
850852

851853
/* restore FIFO data streaming */
852-
if (st->fifo.on)
854+
if (st->fifo.on) {
855+
inv_sensors_timestamp_reset(&gyro_st->ts);
856+
inv_sensors_timestamp_reset(&accel_st->ts);
853857
ret = regmap_write(st->map, INV_ICM42600_REG_FIFO_CONFIG,
854858
INV_ICM42600_FIFO_CONFIG_STREAM);
859+
}
855860

856861
out_unlock:
857862
mutex_unlock(&st->lock);

0 commit comments

Comments
 (0)