Public bug reported:

[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/[email protected]/
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/[email protected]/

[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.

[Other Info]
- Targets: oem-6.17 (Noble) and oem-7.0 (Resolute).
- The v1 5-patch set is carried as UBUNTU SAUCE (not upstream). Realtek's
  proper fix (phylink series) is still under review upstream; the quirk
  will be dropped once that lands.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: Invalid

** Affects: linux-oem-6.17 (Ubuntu)
     Importance: Undecided
         Status: Invalid

** Affects: linux (Ubuntu Noble)
     Importance: Undecided
         Status: Invalid

** Affects: linux-oem-6.17 (Ubuntu Noble)
     Importance: Undecided
     Assignee: AceLan Kao (acelankao)
         Status: In Progress

** Affects: linux (Ubuntu Resolute)
     Importance: Undecided
     Assignee: AceLan Kao (acelankao)
         Status: In Progress

** Affects: linux-oem-6.17 (Ubuntu Resolute)
     Importance: Undecided
         Status: Invalid

** Also affects: linux-oem-7.0 (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: linux-oem-6.17 (Ubuntu Noble)
   Importance: Undecided
       Status: New

** Also affects: linux-oem-7.0 (Ubuntu Noble)
   Importance: Undecided
       Status: New

** Also affects: linux-oem-6.17 (Ubuntu Resolute)
   Importance: Undecided
       Status: New

** Also affects: linux-oem-7.0 (Ubuntu Resolute)
   Importance: Undecided
       Status: New

** Package changed: linux-oem-7.0 (Ubuntu) => linux (Ubuntu)

** Changed in: linux (Ubuntu Resolute)
       Status: New => In Progress

** Changed in: linux (Ubuntu Noble)
       Status: New => Invalid

** Changed in: linux-oem-6.17 (Ubuntu)
       Status: New => Invalid

** Changed in: linux (Ubuntu)
       Status: New => Invalid

** Changed in: linux-oem-6.17 (Ubuntu Noble)
       Status: New => In Progress

** Changed in: linux-oem-6.17 (Ubuntu Resolute)
       Status: New => Invalid

** Changed in: linux (Ubuntu Resolute)
     Assignee: (unassigned) => AceLan Kao (acelankao)

** Changed in: linux-oem-6.17 (Ubuntu Noble)
     Assignee: (unassigned) => AceLan Kao (acelankao)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2160475

Title:
  System cannot enter s0ix suspend on Dell with RTL8116AF ethernet

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2160475/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to