Sean, Sean Nyekjaer <sean@xxxxxxxxxx> writes: > I have a question regarding CLOCK_REALTIME and CLOCK_BOOTTIME when > resuming from suspend. > > We have run into problems with > drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c + the first patch from > Lorenzo Bianconi in this thread. The accelerometer have an internal > FIFO that includes a timestamp. When we resume from suspend, the > driver resets the fifo ts counter and sets an internal reference to > that time. > > But to me it looks like both CLOCK_REALTIME and CLOCK_BOOTIME aren't > ready when st_lsm6dsx_resume() is called. That depends on your system. Timekeeping is resumed way before drivers are resumed, but the suspend time injection might happen late when there is no early device to read from. In this case it happens when the RTC is resumed. If the IIO driver resumes before the RTC which injects the suspend time, then the core time is still in the past. And RTC is using the default resume mechanism, so depending on device/class registration order this might be the case. Deferring to the PM & RTC wizards. Thanks, tglx