Message ID | 201110071140.17299.florian@openwrt.org |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c index b64fcee..ab59538 100644 --- a/drivers/net/r6040.c +++ b/drivers/net/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; }
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 <Joe.Chou@rdc.com.tw> Signed-off-by: Florian Fainelli <florian@openwrt.org> CC: stable@kernel.org # 2.6.38+ ---