mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
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:
parent
0ee8d33c64
commit
a1862a53df
2 changed files with 7 additions and 66 deletions
|
@ -1709,75 +1709,13 @@ static void adjust_link(struct net_device *dev)
|
|||
if (mii_info->speed != ugeth->oldspeed) {
|
||||
switch (mii_info->speed) {
|
||||
case 1000:
|
||||
#ifdef CONFIG_PPC_MPC836x
|
||||
/* 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);
|
||||
ugeth->ug_info->enet_interface = ENET_1000_RGMII;
|
||||
break;
|
||||
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;
|
||||
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;
|
||||
case 10:
|
||||
ugeth->ug_info->enet_interface = ENET_10_RGMII;
|
||||
break;
|
||||
default:
|
||||
ugeth_warn
|
||||
|
@ -1785,6 +1723,7 @@ remove this lines when it will be fixed!!! */
|
|||
dev->name, mii_info->speed);
|
||||
break;
|
||||
}
|
||||
adjust_enet_interface(ugeth);
|
||||
|
||||
ugeth_info("%s: Speed %dBT", dev->name,
|
||||
mii_info->speed);
|
||||
|
|
|
@ -376,6 +376,8 @@ static int marvell_init(struct ugeth_mii_info *mii_info)
|
|||
ugphy_vdbg("%s: IN", __FUNCTION__);
|
||||
|
||||
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_read(mii_info, MII_BMCR) | BMCR_RESET);
|
||||
msleep(4000);
|
||||
|
|
Loading…
Reference in a new issue