net: tc35815: use phy_init_hw for PHY reset
Instead of open-coding the PHY reset through MII BMCR, use phy_init_hw() which does that for us and also makes sure that any PHY specific fixups are applied. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
78de53f05c
commit
01b0114e06
|
@ -1170,19 +1170,12 @@ static int tc35815_tx_full(struct net_device *dev)
|
|||
static void tc35815_restart(struct net_device *dev)
|
||||
{
|
||||
struct tc35815_local *lp = netdev_priv(dev);
|
||||
int ret;
|
||||
|
||||
if (lp->phy_dev) {
|
||||
int timeout;
|
||||
|
||||
phy_write(lp->phy_dev, MII_BMCR, BMCR_RESET);
|
||||
timeout = 100;
|
||||
while (--timeout) {
|
||||
if (!(phy_read(lp->phy_dev, MII_BMCR) & BMCR_RESET))
|
||||
break;
|
||||
udelay(1);
|
||||
}
|
||||
if (!timeout)
|
||||
printk(KERN_ERR "%s: BMCR reset failed.\n", dev->name);
|
||||
ret = phy_init_hw(lp->phy_dev);
|
||||
if (ret)
|
||||
printk(KERN_ERR "%s: PHY init failed.\n", dev->name);
|
||||
}
|
||||
|
||||
spin_lock_bh(&lp->rx_lock);
|
||||
|
|
Loading…
Reference in New Issue