kernel: bump 4.14 to 4.14.130
[openwrt/openwrt.git] / target / linux / mediatek / patches-4.14 / 0063-atomic-sleep.patch
1 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
2 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
3 @@ -409,6 +409,7 @@ static int mtk_mdio_init(struct mtk_eth
4
5 snprintf(eth->mii_bus->id, MII_BUS_ID_SIZE, "%s", mii_np->name);
6 ret = of_mdiobus_register(eth->mii_bus, mii_np);
7 +printk("%s:%s[%d]%d %p\n", __FILE__, __func__, __LINE__, ret, eth->mii_bus);
8
9 err_put_node:
10 of_node_put(mii_np);
11 @@ -1472,7 +1473,10 @@ static void mtk_hwlro_rx_uninit(struct m
12 for (i = 0; i < 10; i++) {
13 val = mtk_r32(eth, MTK_PDMA_LRO_CTRL_DW0);
14 if (val & MTK_LRO_RING_RELINQUISH_DONE) {
15 - msleep(20);
16 + if (in_atomic())
17 + mdelay(20);
18 + else
19 + msleep(20);
20 continue;
21 }
22 break;
23 @@ -1869,7 +1873,10 @@ static void mtk_stop_dma(struct mtk_eth
24 for (i = 0; i < 10; i++) {
25 val = mtk_r32(eth, glo_cfg);
26 if (val & (MTK_TX_DMA_BUSY | MTK_RX_DMA_BUSY)) {
27 - msleep(20);
28 + if (in_atomic())
29 + mdelay(20);
30 + else
31 + msleep(20);
32 continue;
33 }
34 break;
35 @@ -1907,7 +1914,10 @@ static void ethsys_reset(struct mtk_eth
36 reset_bits,
37 reset_bits);
38
39 - usleep_range(1000, 1100);
40 + if (in_atomic())
41 + udelay(1000);
42 + else
43 + usleep_range(1000, 1100);
44 regmap_update_bits(eth->ethsys, ETHSYS_RSTCTRL,
45 reset_bits,
46 ~reset_bits);