Lengthen the hardware retry timer to four microseconds.

The i225/i226 hardware retries if it receives an inappropriate response
from the upstream device. If the device retries too quickly, the root
port does not respond.

The issue can be reproduced with the following:

$ sudo phc2sys -R 1000 -O 0 -i tsn0 -m

Note: 1000 Hz (-R 1000) is unrealistically large, but provides a way to
quickly reproduce the issue.

PHC2SYS exits with:

"ioctl PTP_OFFSET_PRECISE: Connection timed out" when the PTM transaction
  fails

Fixes: 6b8aa753a9f9 ("igc: Decrease PTM short interval from 10 us to 1 us")
Reviewed-by: Michal Swiatkowski <[email protected]>
Tested-by: Mor Bar-Gabay <[email protected]>
Tested-by: Avigail Dahan <[email protected]>
Signed-off-by: Christopher S M Hall <[email protected]>
---
 drivers/net/ethernet/intel/igc/igc_defines.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_defines.h 
b/drivers/net/ethernet/intel/igc/igc_defines.h
index 2ff292f5f63b..84521a4c35b4 100644
--- a/drivers/net/ethernet/intel/igc/igc_defines.h
+++ b/drivers/net/ethernet/intel/igc/igc_defines.h
@@ -574,7 +574,7 @@
 #define IGC_PTM_CTRL_SHRT_CYC(usec)    (((usec) & 0x3f) << 2)
 #define IGC_PTM_CTRL_PTM_TO(usec)      (((usec) & 0xff) << 8)
 
-#define IGC_PTM_SHORT_CYC_DEFAULT      1   /* Default short cycle interval */
+#define IGC_PTM_SHORT_CYC_DEFAULT      4   /* Default short cycle interval */
 #define IGC_PTM_CYC_TIME_DEFAULT       5   /* Default PTM cycle time */
 #define IGC_PTM_TIMEOUT_DEFAULT                255 /* Default timeout for PTM 
errors */
 
-- 
2.34.1

Reply via email to