aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/realtek
diff options
context:
space:
mode:
authorGravatar ChunHao Lin <hau@realtek.com> 2023-11-10 01:34:00 +0800
committerGravatar Jakub Kicinski <kuba@kernel.org> 2023-11-13 21:00:07 -0800
commit868c3b95afef4883bfb66c9397482da6840b5baf (patch)
treec11011f35dad0f06b3178a2be7a0bfb34585a60c /drivers/net/ethernet/realtek
parentr8169: add handling DASH when DASH is disabled (diff)
downloadlinux-868c3b95afef4883bfb66c9397482da6840b5baf.tar.gz
linux-868c3b95afef4883bfb66c9397482da6840b5baf.tar.bz2
linux-868c3b95afef4883bfb66c9397482da6840b5baf.zip
r8169: fix network lost after resume on DASH systems
Device that support DASH may be reseted or powered off during suspend. So driver needs to handle DASH during system suspend and resume. Or DASH firmware will influence device behavior and causes network lost. Fixes: b646d90053f8 ("r8169: magic.") Cc: stable@vger.kernel.org Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: ChunHao Lin <hau@realtek.com> Link: https://lore.kernel.org/r/20231109173400.4573-3-hau@realtek.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/realtek')
-rw-r--r--drivers/net/ethernet/realtek/r8169_main.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index cfcb40d90920..b9bb1d2f0237 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -4661,10 +4661,16 @@ static void rtl8169_down(struct rtl8169_private *tp)
rtl8169_cleanup(tp);
rtl_disable_exit_l1(tp);
rtl_prepare_power_down(tp);
+
+ if (tp->dash_type != RTL_DASH_NONE)
+ rtl8168_driver_stop(tp);
}
static void rtl8169_up(struct rtl8169_private *tp)
{
+ if (tp->dash_type != RTL_DASH_NONE)
+ rtl8168_driver_start(tp);
+
pci_set_master(tp->pci_dev);
phy_init_hw(tp->phydev);
phy_resume(tp->phydev);