Re: IIO timestamp get skewed when suspending (st_lsm6dsx)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 
> 
> On 02/06/2020 15.39, Sean Nyekjaer wrote:
> > > > are these values from the hw FIFO? can you please add
> > > > sensor->ts_ref to the trace and
> > > > a log into st_lsm6dsx_reset_hw_ts?
> > > > 
> > > 
> > > Hi,
> > > 
> > > This certainly looks weird,
> > > 
> > > https://gist.github.com/sknsean/b32bae140008cf446a8fea58e305da47
> > > 
> > > Seems like the ts_ref is updated and used but not read/used in
> > > userspace...
> > > 
> > > /Sean
> > 
> > added to st_lsm6dsx_read_fifo :
> > 
> > printk("ts_ref %lld, ts %lld, sample_time %lld\n", acc_sensor->ts_ref,
> > ts, acc_sensor->ts_ref + ts);
> > 
> > https://gist.github.com/sknsean/3ad1e9e05cb0e2ef811a3c83492a1980
> > 
> > Suspend again was 15sec
> > 
> > /Sean
> 
> Hi,
> 
> Some more findings :)
> https://gist.github.com/sknsean/d31e48b65515361309cd238dcf68600f
> 
> To me it looks like ktime_get_real_ns() isn't ready or updated when we are
> calling iio_get_time_ns().
> If we look in the trace ktime_get_real_ns() it's ready when we are getting
> the first sample after suspend.
> 
> Running with this patch:
> https://gist.github.com/sknsean/415d1b9c34f20db4419a0c61a58eb188
> +
> The first from this thread.
> 
> /Sean

Hi Sean,

looking at the logs I guess we should not reset the sensor hw ts. Could you
please try the below patch?

Regards,
Lorenzo

diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
index 0b776cb91928..4f8a9bcee77b 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -2445,6 +2445,8 @@ static int __maybe_unused st_lsm6dsx_resume(struct device *dev)
 		if (!(hw->suspend_mask & BIT(sensor->id)))
 			continue;
 
+		sensor->ts_ref = iio_get_time_ns(hw->iio_devs[i]);
+
 		if (sensor->id == ST_LSM6DSX_ID_EXT0 ||
 		    sensor->id == ST_LSM6DSX_ID_EXT1 ||
 		    sensor->id == ST_LSM6DSX_ID_EXT2)

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux