Hi all, This patch series tries to address the shortcomings of the previously and then quickly reverted commit 7ad813f208533cebfcc32d3d7474dc1677d1b09a ("net: phy: Correctly process PHY_HALTED in phy_stop_machine()")
This time, the empire returns and strikes back with a few additional changes: - catch phy_disconnect() calls without prior phy_stop() and warn when that happens since that means a driver is not behaving properly. This is AFAIR the case in which David Daney ran into - what David also was running into is that when the PHY state machine was already in PHY_HALTED, its synchronous call in phy_disconnect() would make us re-schedule ourselves at the end. This is unnecessary, and we now take care of that - finally, Geert experienced bus errors on smsc911x for a number of reasons, but the primary one is that the driver does not do any management of the PHY state machine during suspend/resume. The last patch corrects that, and also suggests that the driver should be fixed to properly support Wake-on-LAN configuration to possibly suspend the PHY. David, Marc and Geert, I would appreciate if you could give this patch series a spin on your respective HW and confirm that the desired functionality is achieved. Florian Fainelli (4): net: phy: Export phy_stop_machine() net: smsc911x: Properly manage PHY during suspend/resume net: phy: Force PHY_HALTED during phy_disconnect() net: phy: Correctly process PHY_HALTED in phy_stop_machine() drivers/net/ethernet/smsc/smsc911x.c | 7 +++++++ drivers/net/phy/phy.c | 13 +++++++++++-- drivers/net/phy/phy_device.c | 5 +++++ 3 files changed, 23 insertions(+), 2 deletions(-) -- 2.9.3