diff options
-rw-r--r-- | drivers/net/phy/phy.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index df7e9450c26..48e86d76af5 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -696,6 +696,12 @@ int phy_reset(struct phy_device *phydev) reg |= BMCR_RESET; +#ifdef CONFIG_MX6 + /* at least on a Micrel KSZ8041 the following bits do not get + * cleared by a SW reset, but they should */ + reg &= ~(BMCR_PDOWN|BMCR_LOOPBACK|BMCR_CTST); +#endif + if (phy_write(phydev, devad, MII_BMCR, reg) < 0) { debug("PHY reset failed\n"); return -1; |