diff mbox series

[net] r8169: fix resume on cable plug-in

Message ID 5ecbf6db-f8e5-7b31-d80e-7c835eb7ae5c@gmail.com
State Accepted
Delegated to: David Miller
Headers show
Series [net] r8169: fix resume on cable plug-in | expand

Commit Message

Heiner Kallweit Dec. 1, 2019, 9:39 a.m. UTC
It was reported [0] that network doesn't wake up on cable plug-in with
certain chip versions. Reason is that on these chip versions the PHY
doesn't detect cable plug-in when being in power-down mode. So prevent
the PHY from powering down if WoL is enabled.

[0] https://bugzilla.kernel.org/show_bug.cgi?id=202103

Fixes: 95fb8bb3181b ("net: phy: force phy suspend when calling phy_stop")
Reported-by: jhdskag3 <jhdskag3@tutanota.com>
Tested-by: jhdskag3 <jhdskag3@tutanota.com>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 drivers/net/ethernet/realtek/r8169_main.c | 1 +
 1 file changed, 1 insertion(+)

Comments

David Miller Dec. 1, 2019, 9:16 p.m. UTC | #1
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: Sun, 1 Dec 2019 10:39:56 +0100

> It was reported [0] that network doesn't wake up on cable plug-in with
> certain chip versions. Reason is that on these chip versions the PHY
> doesn't detect cable plug-in when being in power-down mode. So prevent
> the PHY from powering down if WoL is enabled.
> 
> [0] https://bugzilla.kernel.org/show_bug.cgi?id=202103
> 
> Fixes: 95fb8bb3181b ("net: phy: force phy suspend when calling phy_stop")
> Reported-by: jhdskag3 <jhdskag3@tutanota.com>
> Tested-by: jhdskag3 <jhdskag3@tutanota.com>
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

Applied and queued up for -stable.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index d47a038cb..0b47db2ff 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -1542,6 +1542,7 @@  static void __rtl8169_set_wol(struct rtl8169_private *tp, u32 wolopts)
 	rtl_lock_config_regs(tp);
 
 	device_set_wakeup_enable(tp_to_dev(tp), wolopts);
+	tp->dev->wol_enabled = wolopts ? 1 : 0;
 }
 
 static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)