ucc_geth: Remove obsolete workaround of link speed change

The workaround used a long delay of 4s which caused problem
when two link-changes happens at the same time.

Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Wu Xiaochuan <xiao-chuan.wu@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
Li Yang 2007-02-08 17:34:42 +08:00 коммит произвёл Jeff Garzik
Родитель 0ee8d33c64
Коммит a1862a53df
2 изменённых файлов: 7 добавлений и 66 удалений

Просмотреть файл

@ -1709,75 +1709,13 @@ static void adjust_link(struct net_device *dev)
if (mii_info->speed != ugeth->oldspeed) { if (mii_info->speed != ugeth->oldspeed) {
switch (mii_info->speed) { switch (mii_info->speed) {
case 1000: case 1000:
#ifdef CONFIG_PPC_MPC836x ugeth->ug_info->enet_interface = ENET_1000_RGMII;
/* FIXME: This code is for 100Mbs BUG fixing,
remove this when it is fixed!!! */
if (ugeth->ug_info->enet_interface ==
ENET_1000_GMII)
/* Run the commands which initialize the PHY */
{
tempval =
(u32) mii_info->mdio_read(ugeth->
dev, mii_info->mii_id, 0x1b);
tempval |= 0x000f;
mii_info->mdio_write(ugeth->dev,
mii_info->mii_id, 0x1b,
(u16) tempval);
tempval =
(u32) mii_info->mdio_read(ugeth->
dev, mii_info->mii_id,
MII_BMCR);
mii_info->mdio_write(ugeth->dev,
mii_info->mii_id, MII_BMCR,
(u16) (tempval | BMCR_RESET));
} else if (ugeth->ug_info->enet_interface ==
ENET_1000_RGMII)
/* Run the commands which initialize the PHY */
{
tempval =
(u32) mii_info->mdio_read(ugeth->
dev, mii_info->mii_id, 0x1b);
tempval = (tempval & ~0x000f) | 0x000b;
mii_info->mdio_write(ugeth->dev,
mii_info->mii_id, 0x1b,
(u16) tempval);
tempval =
(u32) mii_info->mdio_read(ugeth->
dev, mii_info->mii_id,
MII_BMCR);
mii_info->mdio_write(ugeth->dev,
mii_info->mii_id, MII_BMCR,
(u16) (tempval | BMCR_RESET));
}
msleep(4000);
#endif /* CONFIG_MPC8360 */
adjust_enet_interface(ugeth);
break; break;
case 100: case 100:
case 10:
#ifdef CONFIG_PPC_MPC836x
/* FIXME: This code is for 100Mbs BUG fixing,
remove this lines when it will be fixed!!! */
ugeth->ug_info->enet_interface = ENET_100_RGMII; ugeth->ug_info->enet_interface = ENET_100_RGMII;
tempval = break;
(u32) mii_info->mdio_read(ugeth->dev, case 10:
mii_info->mii_id, ugeth->ug_info->enet_interface = ENET_10_RGMII;
0x1b);
tempval = (tempval & ~0x000f) | 0x000b;
mii_info->mdio_write(ugeth->dev,
mii_info->mii_id, 0x1b,
(u16) tempval);
tempval =
(u32) mii_info->mdio_read(ugeth->dev,
mii_info->mii_id,
MII_BMCR);
mii_info->mdio_write(ugeth->dev,
mii_info->mii_id, MII_BMCR,
(u16) (tempval |
BMCR_RESET));
msleep(4000);
#endif /* CONFIG_MPC8360 */
adjust_enet_interface(ugeth);
break; break;
default: default:
ugeth_warn ugeth_warn
@ -1785,6 +1723,7 @@ remove this lines when it will be fixed!!! */
dev->name, mii_info->speed); dev->name, mii_info->speed);
break; break;
} }
adjust_enet_interface(ugeth);
ugeth_info("%s: Speed %dBT", dev->name, ugeth_info("%s: Speed %dBT", dev->name,
mii_info->speed); mii_info->speed);

Просмотреть файл

@ -376,6 +376,8 @@ static int marvell_init(struct ugeth_mii_info *mii_info)
ugphy_vdbg("%s: IN", __FUNCTION__); ugphy_vdbg("%s: IN", __FUNCTION__);
ucc_geth_phy_write(mii_info, 0x14, 0x0cd2); ucc_geth_phy_write(mii_info, 0x14, 0x0cd2);
ucc_geth_phy_write(mii_info, 0x1b,
(ucc_geth_phy_read(mii_info, 0x1b) & ~0x000f) | 0x000b);
ucc_geth_phy_write(mii_info, MII_BMCR, ucc_geth_phy_write(mii_info, MII_BMCR,
ucc_geth_phy_read(mii_info, MII_BMCR) | BMCR_RESET); ucc_geth_phy_read(mii_info, MII_BMCR) | BMCR_RESET);
msleep(4000); msleep(4000);