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