From: Florian Fainelli Date: Thu, 6 Oct 2011 23:36:22 +0000 (+0000) Subject: r6040: invoke phy_{start,stop} when appropriate X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=06e92c33999fd66128c2256b0461455633c3d53c;p=openwrt%2Fstaging%2Fblogic.git r6040: invoke phy_{start,stop} when appropriate Joe reported to me that right after a bring up of a r6040 interface the ethtool output had no consistent output with respect to link duplex and speed. Fix this by adding a missing phy_start call in r6040_up and conversely a phy_stop call in r6040_down to properly initialize phy states. Reported-by: Joe Chou Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/rdc/r6040.c b/drivers/net/ethernet/rdc/r6040.c index 2bbadc044784..a128c3d1c47f 100644 --- a/drivers/net/ethernet/rdc/r6040.c +++ b/drivers/net/ethernet/rdc/r6040.c @@ -470,6 +470,8 @@ static void r6040_down(struct net_device *dev) iowrite16(adrp[0], ioaddr + MID_0L); iowrite16(adrp[1], ioaddr + MID_0M); iowrite16(adrp[2], ioaddr + MID_0H); + + phy_stop(lp->phydev); } static int r6040_close(struct net_device *dev) @@ -727,6 +729,8 @@ static int r6040_up(struct net_device *dev) /* Initialize all MAC registers */ r6040_init_mac_regs(dev); + phy_start(lp->phydev); + return 0; }