This patch series aims to tackle few issues with phylib: - address issues with patch series [1] (smsc911x + phylib changes) - make phy_stop synchronous - get rid of phy_start/stop_machine and handle it in phy_start/phy_stop - in mdio_suspend consider runtime pm state of mdio bus parent - consider more WOL conditions when deciding whether PHY is allowed to suspend - only resume phy after system suspend if needed
[1] https://www.mail-archive.com/[email protected]/msg196061.html It works fine here but other NIC drivers may use phylib differently. Therefore I'd appreciate feedback and more testing. I could think of some subsequent patches, e.g. phy_error() could be reduced to calling phy_stop() and printing an error message (today it silently sets the PHY state to PHY_HALTED). Changes in v2: - Incorporate review comments - Address error reported by Geert by changing phy_stop() to not trigger a linkwatch event. Heiner Kallweit (7): net: phy: unconditionally resume and re-enable interrupts in phy_start net: phy: improve checking for when PHY is allowed to suspend net: phy: resume PHY only if needed in mdio_bus_phy_suspend net: phy: remove phy_start_machine net: phy: make phy_stop synchronous net: phy: use new function phy_stop_suspending in mdio_bus_phy_suspend net: phy: remove phy_stop_machine drivers/net/phy/phy.c | 127 +++++++++++++++++++++---------------------- drivers/net/phy/phy_device.c | 77 ++++++++++++++++---------- drivers/net/phy/phylink.c | 1 - include/linux/phy.h | 3 +- 4 files changed, 112 insertions(+), 96 deletions(-) -- 2.16.2
