net: sh_eth: do not issue a wild PHY reset through BMCR
The sh_eth driver issues an uncontrolled PHY reset through the MII register BMCR but fails to wait for the reset to complete, and will also implicitely wipe out all possible PHY fixups applied. Use phy_init_hw() which remedies both problems. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
01b0114e06
commit
0c9eb5b931
|
@ -1704,7 +1704,10 @@ static int sh_eth_phy_start(struct net_device *ndev)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
/* reset phy - this also wakes it from PDOWN */
|
/* reset phy - this also wakes it from PDOWN */
|
||||||
phy_write(mdp->phydev, MII_BMCR, BMCR_RESET);
|
ret = phy_init_hw(mdp->phydev);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
phy_start(mdp->phydev);
|
phy_start(mdp->phydev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue