[SRU][R][PATCH 0/7] System cannot enter s0ix suspend on Dell with RTL8116AF ethernet
AceLan Kao
acelan.kao at canonical.com
Fri Jul 17 05:10:16 UTC 2026
From: "Chia-Lin Kao (AceLan)" <acelan.kao at canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2160475
[Impact]
On Dell Pro 5 Micro P5M1260 (RTL8116AF / "RTK 1G OM"), the system cannot
enter suspend. Screen turns off, fan stops, power LED goes off, but the
system never reaches S0ix: slp_s0_residency stays 0 and package C-state
stalls at C10 entry. Hits 100%.
Root cause: RTL8116AF runs in SFP/SerDes mode. The r8169 driver needs a
dummy PHY ID so phylib can attach a dummy Realtek PHY driver, with the
needed standard PHY registers served through the SerDes register. Also
RTL8116AF is a multi-function card: all functions (including hidden
functions 2-7) must be put to D3hot and have ASPM enabled so the platform
can reach C10 and s0ix. Without these, the PCIe link stays active and
blocks package low-power entry.
[Fix]
Backport Realtek's 5-patch r8169 RTL8116AF series (v1, the smallest set
that fixes the issue):
net: phy: realtek: add support for dummy phy
r8169: move functions forward
r8169: fix RTL8116af link readiness bug
r8169: add ltr support for RTL8116af
r8169: fix RTL8116af can not enter s0idle and c10
These add the dummy PHY, SerDes register handling, LTR/ASPM and
multi-function D3hot programming for RTL_GIGA_MAC_VER_52 (RTL8116AF).
Because these changes touch RTL_GIGA_MAC_VER_52 broadly, they are gated
behind a Dell Pro 5 Micro P5M1260 DMI quirk (a per-device rtl8116af_quirk
flag). Only the matched machine takes the new path; other
RTL8116AF/VER_52 systems keep the current behavior.
Upstream status: not merged into a released kernel yet. Realtek posted a
larger phylink-based series (v6, 7 patches) still under review on netdev:
https://lore.kernel.org/netdev/20260709100237.541-1-javen_xu@realsil.com.cn/
We use the smaller v1 5-patch set as a quirk workaround until that lands.
The 5-patch set we carry:
https://lore.kernel.org/netdev/20260603065916.334-1-javen_xu@realsil.com.cn/
[Test Plan]
On Dell Pro 5 Micro P5M1260:
1. Boot the fixed kernel.
2. Trigger suspend:
$ sudo rtcwake -m mem -s 20
3. After resume, check S0ix residency:
$ sudo cat /sys/kernel/debug/pmc_core/slp_s0_residency_usec
(or: sudo turbostat --show=Pkg%LPI,PkgC10 --quiet sleep 1)
Without patch: slp_s0_residency stays 0; package never reaches C10/s0ix;
system looks suspended (screen/fan/LED off) but never enters S0ix.
With patch: slp_s0_residency increments after each suspend; package
reaches C10/s0ix.
Repeat 20+ cycles to confirm stability.
[Where problems could occur]
Could break the r8169 driver on RTL8116AF / RTL_GIGA_MAC_VER_52 systems.
If the DMI match or the rtl8116af_quirk gating is wrong, the dummy-PHY /
SerDes / LTR changes could apply to the wrong device or be skipped on the
target, causing: the link not coming up (dummy PHY not attached), wrong
link speed reported, or the device failing to reach low-power states on
other VER_52 boards. The quirk uses an exact DMI product-name match to
keep the blast radius to the single matched Dell machine; any regression
is confined to that platform.
Chia-Lin Kao (AceLan) (2):
Revert "UBUNTU: SAUCE: r8169: add quirk for RTL8116af SerDes"
UBUNTU: SAUCE: r8169: gate RTL8116AF fixes behind Dell P5M1260 quirk
Javen Xu (5):
UBUNTU: SAUCE: net: phy: realtek: add support for dummy phy
UBUNTU: SAUCE: r8169: move funcitons forward
UBUNTU: SAUCE: r8169: fix RTL8116af link readiness bug
UBUNTU: SAUCE: r8169: add ltr support for RTL8116af
UBUNTU: SAUCE: r8169: fix RTL8116af can not enter s0idle and c10
drivers/net/ethernet/realtek/r8169_main.c | 274 ++++++++++++++--------
drivers/net/phy/realtek/realtek_main.c | 54 +++++
include/net/phy/realtek_phy.h | 1 +
3 files changed, 233 insertions(+), 96 deletions(-)
--
2.53.0
More information about the kernel-team
mailing list