diff options
author | Florian Fainelli <florian@openwrt.org> | 2011-10-06 23:36:22 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-10-09 23:50:59 -0400 |
commit | 06e92c33999fd66128c2256b0461455633c3d53c (patch) | |
tree | ee8bb0b4d7c53cee8ab9eefbae1dc44346d72d17 /drivers/net/ethernet/rdc | |
parent | f0ec7177e239ed94a398a6c70b38530ff1393cb7 (diff) |
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 <Joe.Chou@rdc.com.tw>
Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/rdc')
-rw-r--r-- | drivers/net/ethernet/rdc/r6040.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/rdc/r6040.c b/drivers/net/ethernet/rdc/r6040.c index 2bbadc04478..a128c3d1c47 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; } |