r8169: revert bogus BMCR reset
authorFrancois Romieu <romieu@fr.zoreil.com>
Thu, 8 Mar 2007 22:59:54 +0000 (23:59 +0100)
committerJeff Garzik <jeff@garzik.org>
Fri, 9 Mar 2007 16:51:32 +0000 (11:51 -0500)
Added during bf793295e1090af84972750898bf8470df5e5419

The current code requests a reset but prohibits autoneg, 1000 Mb/s,
100 Mb/s and full duplex. The 8168 does not like it at all.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/r8169.c

index 15d954e..6693a30 100644 (file)
@@ -572,8 +572,8 @@ static void rtl8169_xmii_reset_enable(void __iomem *ioaddr)
 {
        unsigned int val;
 
-       mdio_write(ioaddr, MII_BMCR, BMCR_RESET);
-       val = mdio_read(ioaddr, MII_BMCR);
+       val = mdio_read(ioaddr, MII_BMCR) | BMCR_RESET;
+       mdio_write(ioaddr, MII_BMCR, val & 0xffff);
 }
 
 static void rtl8169_check_link_status(struct net_device *dev,