[SRU][R][PATCH v2 0/8] System cannot enter s0ix suspend on Dell with RTL8116AF ethernet

AceLan Kao acelan.kao at canonical.com
Tue Sep 8 09:53:09 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%.

RTL8116AF runs in SFP/SerDes mode and is a multi-function card. Hidden functions 2-7 must be put into D3hot with ASPM enabled so the platform can reach C10/s0ix. Without this, the PCIe link stays active and blocks package low-power entry.

[Fix]
Cherry-pick 7 commits from net-next (v9 r8169 phylink series from Realtek):

  ddffc67d89c8 r8169: add speed in private struct
  9f8cb9cbcdc8 net: phy: phylink: add helper to modify pause
  8a3c76523e44 r8169: add support for phylink
  dab515216def r8169: add support for RTL8116af
  97dee72abc37 r8169: add support for RTL8127atf
  6e445f3d9538 r8169: add ltr support for RTL8117 series
  a306cbd79e07 r8169: fix RTL8116af can not enter s0idle and c10

These move r8169 to phylink, add SerDes link handling for RTL8116af and RTL8127atf, add LTR support for RTL8117, and put RTL8116AF's hidden functions into D3hot with ASPM enabled.

Merged in net-next, not yet in a released kernel version. Original v9 posting:
https://lore.kernel.org/netdev/20260831053745.1197-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

Without patch: slp_s0_residency stays 0, package never reaches C10/s0ix.
With patch: slp_s0_residency increments after each suspend.
Repeat 20+ cycles to confirm stability.

[Where problems could occur]
This moves r8169 link handling from phylib to phylink for all supported chips, not just RTL8116AF. A phylink bug could break link-up, autonegotiation, or pause handling on any r8169 card. The SerDes changes could misidentify SFP mode on other VER_52/VER_63 chips, causing link failure or wrong speed. The D3hot/ASPM change on RTL8116AF's hidden functions could put the ethernet function itself into the wrong power state if function detection is wrong. The RTL8117 LTR change could cause tx/rx stalls if l1.2 entry timing is off.

[Other Info]
Commits are merged in net-next but not yet in a released kernel tag; cherry-picked directly from net-next by hash.

---
v2. marks this series as sauce patch

Chia-Lin Kao (AceLan) (1):
  Revert "UBUNTU: SAUCE: r8169: add quirk for RTL8116af SerDes"

Javen Xu (7):
  UBUNTU: SAUCE: r8169: add speed in private struct
  UBUNTU: SAUCE: net: phy: phylink: add helper to modify pause
  UBUNTU: SAUCE: r8169: add support for phylink
  UBUNTU: SAUCE: r8169: add support for RTL8116af
  UBUNTU: SAUCE: r8169: add support for RTL8127atf
  UBUNTU: SAUCE: r8169: add ltr support for RTL8117 series
  UBUNTU: SAUCE: r8169: fix RTL8116af can not enter s0idle and c10

 drivers/net/ethernet/realtek/Kconfig      |   2 +-
 drivers/net/ethernet/realtek/r8169_main.c | 745 ++++++++++++++++------
 drivers/net/phy/phylink.c                 | 171 +++--
 drivers/net/phy/realtek/realtek_main.c    |  54 --
 include/linux/phylink.h                   |   2 +
 include/net/phy/realtek_phy.h             |   7 -
 6 files changed, 685 insertions(+), 296 deletions(-)
 delete mode 100644 include/net/phy/realtek_phy.h

-- 
2.53.0




More information about the kernel-team mailing list