if (verbosity > 0)
dev_alert(&phydev->mdio.dev, "resuming PHY %x\n", phydev->mdio.addr);
- mutex_lock(&phydev->lock);
/* clear BMCR_PDOWN bit in MII_BMCR register */
err = phy_configure_bit(phydev, MII_BMCR, BMCR_PDOWN, 0);
if (err < 0)
/* reenable link control */
set_link_control(phydev, 1);
- mutex_unlock(&phydev->lock);
return 0;
/* error handling */
phy_configure_error:
- mutex_unlock(&phydev->lock);
dev_err(&phydev->mdio.dev, "phy r/w error: resume failed\n");
return err;
phy_transition_error:
- mutex_unlock(&phydev->lock);
dev_err(&phydev->mdio.dev, "power mode transition failed\n");
return err;
phy_pll_error:
- mutex_unlock(&phydev->lock);
dev_err(&phydev->mdio.dev, "Error: PLL is unstable and not locked\n");
return err;
}