[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