Skip to content

Commit

Permalink
net: tc35815: use phy_init_hw for PHY reset
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Florian Fainelli authored and David S. Miller committed Dec 10, 2013
1 parent 78de53f commit 01b0114
Showing 1 changed file with 4 additions and 11 deletions.
15 changes: 4 additions & 11 deletions drivers/net/ethernet/toshiba/tc35815.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 01b0114

Please sign in to comment.