netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net 0/1] net: phy: Fix interrupt mask loss on resume from hibernation
@ 2021-01-22 14:35 Laurent Badel
  2021-01-22 14:35 ` [PATCH net 1/1] net: phy: Reconfigure PHY interrupt in mdio_bus_phy_restore() Laurent Badel
  2021-01-22 15:19 ` [PATCH net 0/1] net: phy: Fix interrupt mask loss on resume from hibernation Heiner Kallweit
  0 siblings, 2 replies; 4+ messages in thread
From: Laurent Badel @ 2021-01-22 14:35 UTC (permalink / raw)
  To: netdev, Andrew Lunn, Heiner Kallweit, Russell King,
	David S . Miller, Jakub Kicinski, linux-kernel,
	Rafael J . Wysocki, Pavel Machek, linux-pm
  Cc: Laurent Badel

Some PHYs such as SMSC LAN87xx clear the interrupt mask register on
software reset. Since mdio_bus_phy_restore() calls phy_init_hw() which
does a software reset of the PHY, these PHYs will lose their interrupt 
mask configuration on resuming from hibernation.

I initially reconfigured only the PHY interrupt mask using 
phydev->config_intr(), which worked fine with PM_DEBUG/test_resume, but
there seems to be an issue when resuming from a real hibernation, by which
the interrupt type is not set appropriately (in this case 
IRQ_TYPE_LEVEL_LOW). Calling irq_set_irq_type() directly from sysfs 
restored the PHY functionality immediately suggesting that everything is
otherwise well configured. Therefore this patch suggests freeing and
re-requesting the interrupt, to guarantee proper interrupt configuration.

Laurent Badel (1):
  net: phy: Reconfigure PHY interrupt in mdio_bus_phy_restore()

 drivers/net/phy/phy_device.c | 9 +++++++++
 1 file changed, 9 insertions(+)

-- 
2.17.1



-----------------------------
Eaton Industries Manufacturing GmbH ~ Registered place of business: Route de la Longeraie 7, 1110, Morges, Switzerland 

-----------------------------


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-01-22 16:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-22 14:35 [PATCH net 0/1] net: phy: Fix interrupt mask loss on resume from hibernation Laurent Badel
2021-01-22 14:35 ` [PATCH net 1/1] net: phy: Reconfigure PHY interrupt in mdio_bus_phy_restore() Laurent Badel
2021-01-22 15:19 ` [PATCH net 0/1] net: phy: Fix interrupt mask loss on resume from hibernation Heiner Kallweit
2021-01-22 16:12   ` [EXTERNAL] " Badel, Laurent

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).