ptp_qoriq: fix latency in ptp_qoriq_adjtime() operation
authorNikhil Gupta <nikhil.gupta@nxp.com>
Thu, 19 Jan 2023 20:40:34 +0000 (02:10 +0530)
committerJakub Kicinski <kuba@kernel.org>
Sat, 21 Jan 2023 02:20:38 +0000 (18:20 -0800)
commit24a7fffb2533bb44d4ec84bb824732a9c4882f15
tree8ff5538f62c7458541978bb47a7f4d424a41337b
parent5e64f59a3cc2c4cfba748b87f0761d865dec7924
ptp_qoriq: fix latency in ptp_qoriq_adjtime() operation

1588 driver loses about 1us in adjtime operation at PTP slave
This is because adjtime operation uses a slow non-atomic tmr_cnt_read()
followed by tmr_cnt_write() operation.

In the above sequence, since the timer counter operation keeps
incrementing, it leads to latency. The tmr_offset register
(which is added to TMR_CNT_H/L register giving the current time)
must be programmed with the delta nanoseconds.

Signed-off-by: Nikhil Gupta <nikhil.gupta@nxp.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://lore.kernel.org/r/20230119204034.7969-1-nikhil.gupta@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/ptp/ptp_qoriq.c
include/linux/fsl/ptp_qoriq.h