Repository navigation
Conversation
241ebbd to
4f65a0c
Compare
|
@sithglan The K116s part is fine. The second commit also changes the J716c: devices off the awake path are now skipped by the D0 check. Could you get one s2idle cycle on a J716c (with Wi-Fi up and with Wi-Fi down) and one on the K116s with the rebased kernel? If the N1 functions are not on the awake path in some state, the check would now let the suspend through with the link's device out of D0. |
… 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> [thomas: rebased onto integration, where the check also admits the K114c] Signed-off-by: Thomas Glanzmann <thomas@glanzmann.de>
4f65a0c to
643e102
Compare
|
@RyanTheTide rebased onto integration 673f618. It is now 643e102 (was 4f65a0c); the old branch no longer merged.
When the second commit lets a suspend through that used to be refused: only when a device is off the awake path and out of D0. In the N1's case:
If you'd rather close that case in code: Hardware: I don't have a J716c or a K116s here. The K116s run on this rebased branch needs Jens's machine, and the J716c rows, with Wi-Fi up and down, need someone with a J716c. |
|
K116s run for this PR (16" M5 Pro OLED, 27.2 stub, Linux at EL2). Built as @sithglan described: integration/aurora 10dca1d with the eight
output |
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. Below a port Linux trained itself, only the devices that asked to stay awake need to remain in D0; the PCI core restores the rest. Below a port the boot loader trained, such as the N1's, every device must still be in D0, so the J716c and the K114c, whose only port is adopted, are checked as before. Signed-off-by: Jens Axboe <axboe@kernel.dk> [thomas: skip only devices below a port Linux trained (port->pwren), so adopted ports keep requiring D0 for every device] Signed-off-by: Thomas Glanzmann <thomas@glanzmann.de>
643e102 to
70bf8ed
Compare
|
@RyanTheTide @axboe I pushed the stricter variant. It is 70bf8ed (was 643e102); the first commit is unchanged.
@axboe could you run one more s2idle cycle with this head on the K116s? The changed condition is exactly the path your SD port takes. |
Base: integration/aurora (673f618). Two commits in pcie-apple's check for suspend-to-idle over an adopted link.
port->pwren, set only by the cold train), only the devices that asked to stay awake need to stay in D0. Below a port the boot loader trained, such as the N1's, every device must still be in D0. So the J716c and the K114c, whose only port is adopted, are checked exactly as before.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. On the rebased branch (643e102) he ran an s2idle cycle with Wi-Fi up: clean, with Wi-Fi associated and the SD controller present after wake. The current head, 70bf8ed, narrows the second commit to kernel-trained ports and still needs a K116s cycle.
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 673f618, where the check also admits the K114c (aea2429), and removed the LLM co-author and session trailers. Jens has given his OK: the commits carry his Signed-off-by.