Skip to content

PCI: apple: suspend-to-idle on the K116s (adopted N1 link, kernel-trained SD reader port) - #1647

Open
sithglan wants to merge 2 commits into
aurora-silicon:integration/aurorafrom
sithglan:thomas/k116s-pcie-s2idle
Open

sithglan wants to merge 2 commits into
aurora-silicon:integration/aurorafrom
sithglan:thomas/k116s-pcie-s2idle

Conversation

@sithglan

@sithglan sithglan commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Base: integration/aurora (050f6a5). Two commits in pcie-apple's check for suspend-to-idle over an adopted link.

  • Qualify the K116s. The adopted-link check admitted only the J716c. The K116s is its OLED sibling, with the same T6050 host and the N1 on port 0, and its first s2idle failed with -EBUSY from the noirq suspend.
  • D0 only on the awake path. The check walked the whole bus and refused to suspend when any device had left D0. With a kernel-trained second port (the K116s's SD reader, in arm64: dts: apple: t6050-k116s: N1, USB-C, SMC, DCP, sound, PMP/SEP, GPU, SD reader, microphones, camera #1648) the PCI core puts that root port into D3hot, and suspend failed with -EBUSY. Only the devices that asked to stay awake, the N1's functions and through them their root port, need to stay in D0.

Tested by Jens on the K116s: s2idle with everything loaded, also while the camera streams, measured 3.6-3.9 W over 24 minutes against about 5.1 W awake idle. That measurement was on his kernel before the rebase and has not been repeated on the rebased one.

Build: arm64, LLVM 22; drivers/pci/controller/pcie-apple.o, no warnings.

Authorship. Jens Axboe wrote these commits and runs them on his K116s (16-inch MacBook Pro, M5 Pro, OLED; Mac17,12; stub macOS 27.2 26B8125). They come from his K116s bundle of 2026-11-11 (integration/aurora 254c9bd plus 34 commits, kernel 7.3.0 running on the machine). I rebased them onto integration/aurora 050f6a5 and removed the LLM co-author and session trailers. Jens has given his OK: the commits carry his Signed-off-by.

… link

The adopted link's suspend check admits only the J716c; the K116s is its
OLED sibling with the same T6050 host and the N1 on port 0, and the
first s2idle attempt there failed with -EBUSY from the noirq suspend.
Let it through the same checks.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
The adopted-link s2idle check walked the whole bus and refused to suspend
when any device had left D0. With a kernel-trained second port (the SD
reader on the K116s) the PCI core puts that root port into D3hot, and
suspend failed with -EBUSY. Only the devices that asked to stay awake, the
N1's functions and their root port, need to remain in D0.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants