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/netdev@vger.kernel.org/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). 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 | 102 +++++++++++++++++-------------------------- drivers/net/phy/phy_device.c | 80 ++++++++++++++++++++------------- drivers/net/phy/phylink.c | 1 - include/linux/phy.h | 14 ++++-- 4 files changed, 100 insertions(+), 97 deletions(-) -- 2.16.2