[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20171213.150038.1460658060487899292.davem@davemloft.net>
Date: Wed, 13 Dec 2017 15:00:38 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: rmk+kernel@...linux.org.uk
Cc: andrew@...n.ch, f.fainelli@...il.com, netdev@...r.kernel.org
Subject: Re: [PATCH net] net: phy: fix resume handling
From: Russell King <rmk+kernel@...linux.org.uk>
Date: Tue, 12 Dec 2017 10:45:36 +0000
> 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+kernel@...linux.org.uk>
Applied.
Powered by blists - more mailing lists