summaryrefslogtreecommitdiffstats
path: root/mm/process_vm_access.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@armlinux.org.uk>2017-12-12 10:45:36 +0000
committerDavid S. Miller <davem@davemloft.net>2017-12-13 15:00:10 -0500
commitf5e64032a799d4f54decc7eb6aafcdffb67f9ad9 (patch)
treec3bac205223f88e42ad6c7e0f5fbde9c6ca1a553 /mm/process_vm_access.c
parentcd8165c3d5fb07667328434835f2968a87caee67 (diff)
downloadblackbird-op-linux-f5e64032a799d4f54decc7eb6aafcdffb67f9ad9.tar.gz
blackbird-op-linux-f5e64032a799d4f54decc7eb6aafcdffb67f9ad9.zip
net: phy: fix resume handling
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@armlinux.org.uk> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'mm/process_vm_access.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud