mirror of
https://github.com/torvalds/linux
synced 2024-10-28 14:18:20 +00:00
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>
This commit is contained in:
parent
f0ec7177e2
commit
06e92c3399
|
@ -470,6 +470,8 @@ static void r6040_down(struct net_device *dev)
|
||||||
iowrite16(adrp[0], ioaddr + MID_0L);
|
iowrite16(adrp[0], ioaddr + MID_0L);
|
||||||
iowrite16(adrp[1], ioaddr + MID_0M);
|
iowrite16(adrp[1], ioaddr + MID_0M);
|
||||||
iowrite16(adrp[2], ioaddr + MID_0H);
|
iowrite16(adrp[2], ioaddr + MID_0H);
|
||||||
|
|
||||||
|
phy_stop(lp->phydev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int r6040_close(struct net_device *dev)
|
static int r6040_close(struct net_device *dev)
|
||||||
|
@ -727,6 +729,8 @@ static int r6040_up(struct net_device *dev)
|
||||||
/* Initialize all MAC registers */
|
/* Initialize all MAC registers */
|
||||||
r6040_init_mac_regs(dev);
|
r6040_init_mac_regs(dev);
|
||||||
|
|
||||||
|
phy_start(lp->phydev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue