OSDN Git Service

net: phy: consider that suspend2ram may cut off PHY power
authorHeiner Kallweit <hkallweit1@gmail.com>
Thu, 11 Feb 2021 21:32:52 +0000 (22:32 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 12 Feb 2021 02:27:18 +0000 (18:27 -0800)
commit4c0d2e96ba055bd8911bb8287def4f8ebbad15b6
treef09e8cb3a60b43e344229e57a379b52b1e105c78
parente12be9139cca26d689fe1a9257054b76752f725b
net: phy: consider that suspend2ram may cut off PHY power

Claudiu reported that on his system S2R cuts off power to the PHY and
after resuming certain PHY settings are lost. The PM folks confirmed
that cutting off power to selected components in S2R is a valid case.
Therefore resuming from S2R, same as from hibernation, has to assume
that the PHY has power-on defaults. As a consequence use the restore
callback also as resume callback.
In addition make sure that the interrupt configuration is restored.
Let's do this in phy_init_hw() and ensure that after this call
actual interrupt configuration is in sync with phydev->interrupts.
Currently, if interrupt was enabled before hibernation, we would
resume with interrupt disabled because that's the power-on default.

This fix applies cleanly only after the commit marked as fixed.

I don't have an affected system, therefore change is compile-tested
only.

[0] https://lore.kernel.org/netdev/1610120754-14331-1-git-send-email-claudiu.beznea@microchip.com/

Fixes: 611d779af7ca ("net: phy: fix MDIO bus PM PHY resuming")
Reported-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy_device.c