On Tue, Dec 12, 2017 at 10:45:36AM +0000, Russell King wrote:
> When a PHY has the BMCR_PDOWN bit set, it may decide to ignore writes
> to other registers, or reset the registers to power-on defaults.
> Micrel PHYs do this for their interrupt registers.
> 
> The current structure of phylib tries to enable interrupts before
> resuming (and releasing) the BMCR_PDOWN bit.  This fails, causing
> Micrel PHYs to stop working after a suspend/resume sequence if they
> are using interrupts.
> 
> Fix this by ensuring that the PHY driver resume methods do not take
> the phydev->lock mutex themselves, but the callers of phy_resume()
> take that lock.  This then allows us to move the call to phy_resume()
> before we enable interrupts in phy_start().
> 
> Signed-off-by: Russell King <rmk+ker...@armlinux.org.uk>

Reviewed-by: Andrew Lunn <and...@lunn.ch>

    Andrew

Reply via email to