net: tc35815: use phy_init_hw for PHY reset
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 6 Dec 2013 21:01:37 +0000 (13:01 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 10 Dec 2013 01:38:59 +0000 (20:38 -0500)
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>
drivers/net/ethernet/toshiba/tc35815.c

index 1322546d92ac97287a358cbea644568aedb98168..f6b3212ec339ef512be110a3e5fb4358b6c997c0 100644 (file)
@@ -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);