不插网线终端缓慢的问题解决办法
生活随笔
收集整理的這篇文章主要介紹了
不插网线终端缓慢的问题解决办法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用SmartARM3250 V1.00版源碼,會出現不插入網線,終端會很緩慢的BUG,可以修改drivers/net/lpc32xx_mii.c文件的下面兩個函數解決,將兩個函數中的變量的lps的值改為5即可: 1 /*
2 * MAC<--->PHY support functions
3 */
4 static int lpc32xx_mdio_read(struct mii_bus *bus, int phy_id, int phyreg)
5 {
6 struct netdata_local *pldat = bus->priv;
7 int lps;
8 u32 tmp;
9
10 __raw_writel(((phy_id << 8) | phyreg), ENET_MADR(pldat->net_base));
11 __raw_writel(MCMD_READ, ENET_MCMD(pldat->net_base));
12
13 /* Wait for unbusy status */
14 lps = 50; //改為5即可
15 tmp = __raw_readl(ENET_MIND(pldat->net_base));
16 while ((lps > 0) && (tmp & (MIND_BUSY | MIND_MII_LINK_FAIL)))
17 {
18 msleep(1);
19 tmp = __raw_readl(ENET_MIND(pldat->net_base));
20 lps--;
21 }
22 lps = (int) __raw_readl(ENET_MRDD(pldat->net_base));
23 __raw_writel(0, ENET_MCMD(pldat->net_base));
24
25 return lps;
26 }
27
28 static int lpc32xx_mdio_write(struct mii_bus *bus, int phy_id, int phyreg,
29 u16 phydata)
30 {
31 struct netdata_local *pldat = bus->priv;
32 int lps;
33 u32 tmp;
34
35 __raw_writel(((phy_id << 8) | phyreg), ENET_MADR(pldat->net_base));
36 __raw_writel(phydata, ENET_MWTD(pldat->net_base));
37
38 /* Wait for completion */
39 lps = 50; //改為5即可
40 tmp = __raw_readl(ENET_MIND(pldat->net_base));
41 while ((lps > 0) && (tmp & MIND_BUSY))
42 {
43 msleep(1);
44 tmp = __raw_readl(ENET_MIND(pldat->net_base));
45 lps--;
46 }
47
48 return 0;
49 }
?
轉載于:https://www.cnblogs.com/elect-fans/archive/2012/04/28/2475237.html
總結
以上是生活随笔為你收集整理的不插网线终端缓慢的问题解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Extjs嵌入html
- 下一篇: 三星 平板手机电脑 Galaxytab2