嘉人
收藏本版 |订阅 | 回收站
搜索
嘉人美妆精英学院 达人馆 潮流速递 不插网线终端缓慢的疑问解决办法
查看: 208|回复: 0
go

不插网线终端缓慢的疑问解决办法 [!copy_link!]

跳转到指定楼层
1#
发表于 2012-10-16 17:43:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  应用Smartarm3250 V1.00版源码,会呈现不插入网线,终端会很迟缓的BUG,能够修正drivers/net/lpc32xx_mii.c文件的下面两个函数解决,将两个函数中的变量的lps的值改为5即可:
  /*
  * MAC<--->PHY support functions
  */
  static int lpc32xx_mdio_read(struct mii_bus *bus, int phy_id, int phyreg)
  {
  struct netdata_local *pldat = bus->priv;
  int lps;
  u32 tmp;
  __raw_writel(((phy_id << 8) | phyreg), ENET_MADR(pldat->net_base));
  __raw_writel(MCMD_READ, ENET_MCMD(pldat->net_base));
  /* Wait for unbusy status */
  lps = 50; //改为5即可
  tmp = __raw_readl(ENET_MIND(pldat->net_base));
  while ((lps > 0) && (tmp & (MIND_BUSY | MIND_MII_LINK_FAIL)))
  {
  msleep(1);
  tmp = __raw_readl(ENET_MIND(pldat->net_base));
  lps--;
  }
  lps = (int) __raw_readl(ENET_MRDD(pldat->net_base));
  __raw_writel(0, ENET_MCMD(pldat->net_base));
  return lps;
  }
  static int lpc32xx_mdio_write(struct mii_bus *bus, int phy_id, int phyreg,
  u16 phydata)
  {
  struct netdata_local *pldat = bus->priv;
  int lps;
  u32 tmp;
  __raw_writel(((phy_id << 8) | phyreg), ENET_MADR(pldat->net_base));
  __raw_writel(phydata, ENET_MWTD(pldat->net_base));
  /* Wait for completion */
  lps = 50; //改为5即可
  tmp = __raw_readl(ENET_MIND(pldat->net_base));
  while ((lps > 0) && (tmp & MIND_BUSY))
  {
  msleep(1);
  tmp = __raw_readl(ENET_MIND(pldat->net_base));
  lps--;
  }
  return 0;
  }

www.hainantuangou.net
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 鲜花鲜花 鸡蛋鸡蛋
‹ 上一主题|下一主题

Archiver|嘉人网

GMT+8, 2025-6-23 04:46 , Processed in 0.033849 second(s), 14 queries .

Powered by Discuz! X3.2

© 2001-2010 Comsenz Inc.