Messages in this thread Patch in this message |  | | From | Biju <> | | Subject | [PATCH net-next] net: phy: call phy_init_hw() in phy resume path | | Date | Fri, 10 Apr 2026 15:29:01 +0100 |
| |
From: Ovidiu Panait <ovidiu.panait.rb@renesas.com>
When mac_managed_pm flag is set, mdio_bus_phy_resume() is skipped, so phy_init_hw(), which performs soft_reset and config_init, is not called during resume.
This is inconsistent with the non-mac_managed_pm path, where mdio_bus_phy_resume() calls phy_init_hw() before phy_resume() on every resume.
To align both paths, add a phy_init_hw() call at the top of __phy_resume(), before invoking the driver's resume callback. This guarantees the PHY undergoes soft reset and re-initialization regardless of whether PM is managed by the MAC or the MDIO bus.
Signed-off-by: Ovidiu Panait <ovidiu.panait.rb@renesas.com> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> --- drivers/net/phy/phy_device.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index 0edff47478c2..8255f4208d66 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -2008,6 +2008,10 @@ int __phy_resume(struct phy_device *phydev) if (!phydrv || !phydrv->resume) return 0; + ret = phy_init_hw(phydev); + if (ret) + return ret; + ret = phydrv->resume(phydev); if (!ret) phydev->suspended = false; -- 2.43.0
|  |