linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] net: phy: skip disabling interrupt when WOL is enabled in shutdown
@ 2021-07-06  9:02 Ling Pei Lee
  2021-07-06 13:14 ` Andrew Lunn
  0 siblings, 1 reply; 5+ messages in thread
From: Ling Pei Lee @ 2021-07-06  9:02 UTC (permalink / raw)
  To: Andrew Lunn, Heiner Kallweit, Russell King, davem,
	Jakub Kicinski, Ioana Ciornei, netdev, linux-kernel
  Cc: pei.lee.ling, weifeng.voon, vee.khee.wong, vee.khee.wong,
	mohammad.athari.ismail

From: Mohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>

PHY WOL requires WOL interrupt event to trigger the WOL signal
in order to wake up the system. Hence, the PHY driver should not
disable the interrupt during shutdown if PHY WOL is enabled.

Fixes: e2f016cf7751 ("net: phy: add a shutdown procedure")
Signed-off-by: Mohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
Signed-off-by: Ling PeiLee <pei.lee.ling@intel.com>
---
 drivers/net/phy/phy_device.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 1539ea021ac0..f4b88f613dc1 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -2994,9 +2994,13 @@ static int phy_remove(struct device *dev)
 
 static void phy_shutdown(struct device *dev)
 {
+	struct ethtool_wolinfo wol = { .cmd = ETHTOOL_GWOL };
 	struct phy_device *phydev = to_phy_device(dev);
 
-	phy_disable_interrupts(phydev);
+	/* If the device has WOL enabled, don't disable interrupts. */
+	phy_ethtool_get_wol(phydev, &wol);
+	if (!wol.wolopts)
+		phy_disable_interrupts(phydev);
 }
 
 /**
-- 
2.25.1


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

end of thread, other threads:[~2021-07-07  2:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-06  9:02 [PATCH net] net: phy: skip disabling interrupt when WOL is enabled in shutdown Ling Pei Lee
2021-07-06 13:14 ` Andrew Lunn
2021-07-07  0:36   ` Ismail, Mohammad Athari
2021-07-07  0:57     ` Andrew Lunn
2021-07-07  2:51       ` Florian Fainelli

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).