On Fri, Apr 20, 2018 at 02:56:36PM -0500, Kshitiz Gupta wrote: > Currently the driver adjusts time by reading the current time and then > modifying it before writing to SYSTIM register. This can introduce > inaccuracies in SYSTIM. With a PREEMPT_RT kernel, spinlocks may be > interrupted, which in the existing implementation may lead to increased > time between the read and the write. > > Alternatively as per section 7.8.3.2 in the i210 data sheet, this > operation can be done more accurately by using the TIMADJ registers, > but this should only be used for adjustments less than one 8th of the > sync interval. Once this register is written, the software can poll on > TSICR.TADJ to make sure that adjustment operation is completed.
I doubt the utility of this. The first jump is typically to correct a large offset of seconds, minutes, or even months. After that, the servo corrects any remaining error. It would help if you would show us a clearly improved servo response with this change applied. Thanks, Richard