Skip to content

Commit 407618d

Browse files
minimaxwellPaolo Abeni
authored andcommitted
net: stmmac: dwmac-socfpga: Set RX watchdog interrupt as broken
On DWMAC3 and later, there's a RX Watchdog interrupt that's used for interrupt coalescing. It's known to be buggy on some platforms, and dwmac-socfpga appears to be one of them. Changing the interrupt coalescing from ethtool doesn't appear to have any effect here. Without disabling RIWT (Received Interrupt Watchdog Timer, I believe...), we observe latencies while receiving traffic that amount to around ~0.4ms. This was discovered with NTP but can be easily reproduced with a simple ping. Without this patch : 64 bytes from 192.168.5.2: icmp_seq=1 ttl=64 time=0.657 ms With this patch : 64 bytes from 192.168.5.2: icmp_seq=1 ttl=64 time=0.254 ms Fixes: 801d233 ("net: stmmac: Add SOCFPGA glue driver") Signed-off-by: Maxime Chevallier <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Paolo Abeni <[email protected]>
1 parent b032ae5 commit 407618d

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,8 @@ static int socfpga_dwmac_probe(struct platform_device *pdev)
487487
plat_dat->select_pcs = socfpga_dwmac_select_pcs;
488488
plat_dat->has_gmac = true;
489489

490+
plat_dat->riwt_off = 1;
491+
490492
ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
491493
if (ret)
492494
return ret;

0 commit comments

Comments
 (0)