On Wed, Apr 27, 2022 at 05:24:50PM +0200, Andrew Lunn wrote: > You have looked at this code, tried a few different things, so this is > probably a dumb question. > > Do you actually need to call phy_init_hw()? I should add that the PHY register state may not be preserved on runtime PM if woken via the ->reset_resume hook and I believe that's the case when phy_init_hw() is necessary. smsc95xx_suspend() currently accesses PHY registers behind the PHY driver's back to enable Energy Detect Powerdown and it uses smsc95xx_mdio_write_nopm() for that, hence that doesn't deadlock *currently*, but the code should be moved to the PHY driver, and then it will. Thanks, Lukas