Messages in this thread Patch in this message | | | From | Claudiu Beznea <> | Subject | [PATCH v2 1/2] net: phylink: init phydev on phylink_resume() | Date | Mon, 12 Dec 2022 13:28:44 +0200 |
| |
There are scenarios where PHY power is cut off on system suspend. There are also MAC drivers which handles themselves the PHY on suspend/resume path. For such drivers the struct phy_device::mac_managed_phy is set to true and thus the mdio_bus_phy_suspend()/mdio_bus_phy_resume() wouldn't do the proper PHY suspend/resume. For such scenarios call phy_init_hw() from phylink_resume().
Suggested-by: Russell King (Oracle) <linux@armlinux.org.uk> Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> ---
Hi, Russel,
I let phy_init_hw() to execute for all devices. I can restrict it only for PHYs that has struct phy_device::mac_managed_phy = true.
Please let me know what you think.
Thank you, Claudiu Beznea
drivers/net/phy/phylink.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index 09cc65c0da93..6003c329638e 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -2031,6 +2031,12 @@ void phylink_resume(struct phylink *pl) { ASSERT_RTNL(); + if (pl->phydev) { + int ret = phy_init_hw(pl->phydev); + if (ret) + return; + } + if (test_bit(PHYLINK_DISABLE_MAC_WOL, &pl->phylink_disable_state)) { /* Wake-on-Lan enabled, MAC handling */ -- 2.34.1
| |