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