diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-12-08 17:52:26 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-12-08 17:52:55 +0100 |
commit | ac48b10467ffb1c45e67e5efe36413ede140a498 (patch) | |
tree | 2ef8f6be92071bf315f78adb0d2c78d384fb4328 | |
parent | 039a0e52f867c148b21d64eb08c0162cee86439d (diff) | |
download | barebox-ac48b10467ffb1c45e67e5efe36413ede140a498.tar.gz barebox-ac48b10467ffb1c45e67e5efe36413ede140a498.tar.xz |
net phylib: Clear BMCR_PDOWN bit
Some phys come up with this bit set, clear it so that these phys
can work. This has been observed with a ASIX compatible USB ethernet
adapter.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | drivers/net/phy/phy.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index ed185e1471..58546f8546 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -443,6 +443,9 @@ int genphy_restart_aneg(struct phy_device *phydev) /* Don't isolate the PHY if we're negotiating */ ctl &= ~(BMCR_ISOLATE); + /* Clear powerdown bit which eventually is set on some phys */ + ctl &= ~BMCR_PDOWN; + ctl = phy_write(phydev, MII_BMCR, ctl); if (ctl < 0) |