610-v5.13-41-net-ethernet-mtk_eth_soc-reduce-MDIO-bus-access-late.patch 1.1 KB

123456789101112131415161718192021222324252627282930
  1. From 3630d519d7c3eab92567658690e44ffe0517d109 Mon Sep 17 00:00:00 2001
  2. From: Felix Fietkau <[email protected]>
  3. Date: Thu, 22 Apr 2021 22:20:58 -0700
  4. Subject: [PATCH] net: ethernet: mtk_eth_soc: reduce MDIO bus access latency
  5. usleep_range often ends up sleeping much longer than the 10-20us provided
  6. as a range here. This causes significant latency in mdio bus acceses,
  7. which easily adds multiple seconds to the boot time on MT7621 when polling
  8. DSA slave ports.
  9. Use cond_resched instead of usleep_range, since the MDIO access does not
  10. take much time
  11. Signed-off-by: Felix Fietkau <[email protected]>
  12. Signed-off-by: Ilya Lipnitskiy <[email protected]>
  13. Signed-off-by: David S. Miller <[email protected]>
  14. ---
  15. drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
  16. 1 file changed, 1 insertion(+), 1 deletion(-)
  17. --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  18. +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  19. @@ -86,7 +86,7 @@ static int mtk_mdio_busy_wait(struct mtk
  20. return 0;
  21. if (time_after(jiffies, t_start + PHY_IAC_TIMEOUT))
  22. break;
  23. - usleep_range(10, 20);
  24. + cond_resched();
  25. }
  26. dev_err(eth->dev, "mdio: MDIO timeout\n");