Commit dd75c723 authored by René Rebe's avatar René Rebe Committed by Jakub Kicinski
Browse files

r8169: fix RTL8117 Wake-on-Lan in DASH mode



Wake-on-Lan does currently not work for r8169 in DASH mode, e.g. the
ASUS Pro WS X570-ACE with RTL8168fp/RTL8117.

Fix by not returning early in rtl_prepare_power_down when dash_enabled.
While this fixes WoL, it still kills the OOB RTL8117 remote management
BMC connection. Fix by not calling rtl8168_driver_stop if WoL is enabled.

Fixes: 065c27c1 ("r8169: phy power ops")
Signed-off-by: default avatarRené Rebe <rene@exactco.de>
Cc: stable@vger.kernel.org
Reviewed-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Link: https://patch.msgid.link/20251202.194137.1647877804487085954.rene@exactco.de


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent e7a9530d
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -2655,9 +2655,6 @@ static void rtl_wol_enable_rx(struct rtl8169_private *tp)

static void rtl_prepare_power_down(struct rtl8169_private *tp)
{
	if (tp->dash_enabled)
		return;

	if (tp->mac_version == RTL_GIGA_MAC_VER_32 ||
	    tp->mac_version == RTL_GIGA_MAC_VER_33)
		rtl_ephy_write(tp, 0x19, 0xff64);
@@ -4812,7 +4809,7 @@ static void rtl8169_down(struct rtl8169_private *tp)
	rtl_disable_exit_l1(tp);
	rtl_prepare_power_down(tp);

	if (tp->dash_type != RTL_DASH_NONE)
	if (tp->dash_type != RTL_DASH_NONE && !tp->saved_wolopts)
		rtl8168_driver_stop(tp);
}