linux/drivers/net/ethernet/realtek
Oleksij Rempel 3cdeaef175 r8169: disable EEE on RTL8168h/8111h
Force EEE off on the RTL8168h/8111h (RTL_GIGA_MAC_VER_46) at PHY connect
with phy_disable_eee().

Commit 202fef9bbb ("net: phy: realtek: fix EEE advertisement write on
the internal PHY MMD path") made EEE actually advertise on the generic
Realtek PHY; the write had been a no-op before. On the RTL8168h that
un-masks a latent defect: once EEE negotiates, RX silently stalls after
~7-20 minutes. The carrier stays up, no counter or dmesg moves, and only
"ip link set down/up" recovers it; disabling EEE keeps the link stable.

Root-causing the RTL8168h LPI/RX path needs hardware not available now, so
disable EEE for this version. Use phy_disable_eee() rather than dropping
the version from rtl_supports_eee(): the latter also skips
rtl_enable_tx_lpi(), whose disable branch clears the MAC TX-LPI bits (ERI
0x1b0[1:0]) on link up. rtl_hw_start_8168h_1() does not clear them (the
RTL8402/RTL8106e init does), so a warm reboot from an EEE-active state
could otherwise leave TX-LPI asserted while the PHY no longer negotiates
EEE. Keeping the version EEE-capable preserves that clear path. This also
covers the RTL8168M, which shares RTL_GIGA_MAC_VER_46.

Reported-by: Dennis Piecha <d.piecha@ymail.com>
Closes: https://lore.kernel.org/all/353419280.954808.1790290283530@mail.yahoo.com/
Fixes: 202fef9bbb ("net: phy: realtek: fix EEE advertisement write on the internal PHY MMD path")
Cc: stable@vger.kernel.org
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Link: https://patch.msgid.link/20260925071040.2137178-1-o.rempel@pengutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-30 17:18:00 -07:00
..
rtase rtase: fix double free of multi-frag skb on DMA map failure 2026-07-27 18:16:42 -07:00
8139cp.c 8139cp: fix Rx and Tx not being disabled in cp_suspend 2026-08-18 12:02:11 +02:00
8139too.c net: Consistently define pci_device_ids using named initializers 2026-05-12 18:16:34 -07:00
Kconfig net: atp: drop ancient parallel-port Ethernet driver 2026-01-22 13:32:53 +01:00
Makefile net: atp: drop ancient parallel-port Ethernet driver 2026-01-22 13:32:53 +01:00
r8169_firmware.c r8169: remove optional size argument in calls to strscpy 2026-01-26 19:31:11 -08:00
r8169_firmware.h
r8169_leds.c r8169: keep LED device name valid after setup 2026-08-17 10:29:58 -07:00
r8169_main.c r8169: disable EEE on RTL8168h/8111h 2026-09-30 17:18:00 -07:00
r8169_phy_config.c r8169: add support for RTL8125cp 2026-03-05 13:41:48 +01:00
r8169.h r8169: give RTL_GIGA_MAC_VER_EXTENDED a distinct value 2026-08-12 17:51:37 -07:00