aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/patches-4.9/0062-mdio-atomic.patch
blob: 040084d781a9bae7eea5f3934cccfbb807357cc7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Index: linux-4.9.47/drivers/net/ethernet/mediatek/mtk_eth_soc.c
===================================================================
--- linux-4.9.47.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ linux-4.9.47/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -97,7 +97,10 @@ static int mtk_mdio_busy_wait(struct mtk
 			return 0;
 		if (time_after(jiffies, t_start + PHY_IAC_TIMEOUT))
 			break;
-		usleep_range(10, 20);
+		if (in_atomic())
+			udelay(10);
+		else
+			usleep_range(10, 20);
 	}
 
 	dev_err(eth->dev, "mdio: MDIO timeout\n");