]> git.dujemihanovic.xyz Git - linux.git/commitdiff
net: microchip: lan743x: Reduce PTP timeout on HW failure
authorRengarajan S <rengarajan.s@microchip.com>
Thu, 2 May 2024 05:03:00 +0000 (10:33 +0530)
committerPaolo Abeni <pabeni@redhat.com>
Mon, 6 May 2024 09:41:32 +0000 (11:41 +0200)
The PTP_CMD_CTL is a self clearing register which controls the PTP clock
values. In the current implementation driver waits for a duration of 20
sec in case of HW failure to clear the PTP_CMD_CTL register bit. This
timeout of 20 sec is very long to recognize a HW failure, as it is
typically cleared in one clock(<16ns). Hence reducing the timeout to 1 sec
would be sufficient to conclude if there is any HW failure observed. The
usleep_range will sleep somewhere between 1 msec to 20 msec for each
iteration. By setting the PTP_CMD_CTL_TIMEOUT_CNT to 50 the max timeout
is extended to 1 sec.

Signed-off-by: Rengarajan S <rengarajan.s@microchip.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20240502050300.38689-1-rengarajan.s@microchip.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/microchip/lan743x_ptp.c
drivers/net/ethernet/microchip/lan743x_ptp.h

index 80d9680b38303efb9db719f094f91dd4225d5f8d..dcea6652d56d2b43fcc65a58e47087a59a507542 100644 (file)
@@ -58,7 +58,7 @@ int lan743x_gpio_init(struct lan743x_adapter *adapter)
 static void lan743x_ptp_wait_till_cmd_done(struct lan743x_adapter *adapter,
                                           u32 bit_mask)
 {
-       int timeout = 1000;
+       int timeout = PTP_CMD_CTL_TIMEOUT_CNT;
        u32 data = 0;
 
        while (timeout &&
index e26d4eff713361eceadbd169bdc664339d7b66da..0d29914cd460632c452bd76640543fb753ef5d15 100644 (file)
@@ -21,6 +21,7 @@
 #define LAN743X_PTP_N_EXTTS            4
 #define LAN743X_PTP_N_PPS              0
 #define PCI11X1X_PTP_IO_MAX_CHANNELS   8
+#define PTP_CMD_CTL_TIMEOUT_CNT                50
 
 struct lan743x_adapter;