Repository navigation
Conversation
|
@satchlj This conflicts with integration/aurora now, please rebase. Two notes on the code: apple_pcie_adopted_no_clkpm() does not need pcie->lock, so please call it before mutex_lock() in apple_pcie_enable_device(). And since this turns Clock PM off on every adopted T6050 link, we need a boot and s2idle result from a J714s and a J716c as well as your J775c on the rebased head before it can go in. |
|
GPT-6.1 Sol on @satchlj's behalf Merged fresh integration/aurora Resolved the single PCIe overlap by retaining the complete upstream Neo helper block and then the complete Clock PM host-init wrapper, preserving both the pre-enable mask and post-enumeration walk; no relocation or semantic change was needed. Native lobata checks: net diff against integration touches only pcie-apple.c; checkpatch 0 errors/0 warnings, whitespace clean, exact PR-head PCIe object builds as AArch64. Full native kernel build passed with existing warnings. One-shot boot passed on J775c with #1619 Default candidate44 #25 restored healthy, trial marker spent, all seven protected hashes unchanged (installed Stage2/default/fallback/support payloads), Stage1 untouched, build directories removed and lock released. No failing control repeated, suspend, poweroff or recovery power cycle. This is boot/enumeration health evidence on J775c, not suspend or other-board qualification. Fresh hosted host-tests queued at publication; no review requested. |
|
@satchlj thanks for the J775c boot result. Three things before this can go in. Please rebase onto integration/aurora instead of merging it in: the merge commit e52e386 carries a conflict resolution and has no Signed-off-by. Please also move apple_pcie_adopted_no_clkpm(pdev, false) above mutex_lock(&pcie->lock) in apple_pcie_enable_device(), since it does not need that lock. Clock PM now goes off on every adopted T6050 link, so we still need a boot, Wi-Fi/BT and s2idle result from a J714s and a J716c on the rebased head, and s2idle on the J775c. |
Restore the adopted-host Clock PM policy from candidate44. Integration boots J775c with this change alone; restoring bus- number preservation alone does not return as a trial, and restoring the NVMe driver alone does not return. The host leaves CLKREQ# pads and reference-clock gating in firmware state. Removing L0s/L1 capability bits does not mask PCIE_LINK_STATE_CLKPM. Disable it before endpoint enable and walk the enumerated bus to retain the policy. Adapted from Satya Benson candidate44 PCIe adoption changes. Tested on J775c with Aura b6e6faf4 and candidate44 DTB; other boards untested. Signed-off-by: Satya Benson <satya@benson.earth> Assisted-by: LLM
e52e386 to
ccdd14a
Compare
|
GPT-6.1 Sol on @satchlj's behalf Recreated this PR as one original authored/signed-off commit on fresh integration/aurora J775c boot PASS with fresh #1619 SSH returned as the actual trial; NVMe root Preliminary same-tree trials identified an inherited config with BT_HCICENTAURI disabled; enabling BT_HCICENTAURI=y gave a powered HCI. The first Wi-Fi scan command produced AP rows but timed out and was not repeated. Final Wi-Fi qualification uses successful association. Rewrapped inherited commit prose to satisfy full-commit checkpatch (0 errors/0 warnings), preserving author/date/signoff, then rebuilt the exact final PR object and combined kernel and booted the final head above. Earlier trial results are not substituted for this final boot. s2idle: 0/5 attempted, none passed or failed. Cycles 1, 2, 3, 4 and 5 each NOT RUN: final trial offers Default candidate44 #25 restored healthy, marker spent, all seven protected Stage2/default/fallback42/support hashes unchanged, Stage1 untouched, ESP unmounted, build/bindgen directories removed and lock released. No poweroff, recovery power cycle, owner contact or other PR write. The owner branch was fetched fresh before the single force-with-lease update against expected J714s and J716c boot, Wi-Fi/BT and s2idle rows on this rebased head are still needed from their owners. This J775c result does not replace those rows or qualify J775c suspend. |
|
GPT-6.1 Sol on @satchlj's behalf J775c (M5 Max Mac Studio): s2idle 0/5 completed. The single preliminary 20-second RTC probe did not return; cycles 1, 2, 3, 4 and 5 (30 seconds each) were all NOT RUN. This does not establish a #1618 regression: the wake prerequisite is test-only and the failure stage is unresolved. Exact native test composition, fetched fresh from aurora-silicon/linux:
Native full build and SPMI register-layout host check passed. One-shot trial Probe at 04:43:47 EST: Post-resume NVMe, Ethernet, Wi-Fi scanning, Bluetooth, PCIe/AER/IOMMU/SError, ClockPM preservation and display-manager checks are all unqualified. No usable timed wake was demonstrated. The J775c s2idle row will be done with the owner present on Friday 2026-11-13 afternoon US Eastern. The gen4 SPMI driver prerequisite is still open (#1743), not merged into this integration. The compatibility RTC DT restoration belongs in #1619 paired with that prerequisite; DT-only on current integration is insufficient. Ethernet advertises WoL Handback: default44 #25 healthy (NVMe read, wired ping 3/3, Wi-Fi scan, powered Bluetooth, SDDM active, zero failed units); seven protected Stage2/default/fallback/support hashes unchanged. Stage1 untouched, marker spent, ESP unmounted, build/bindgen outputs removed, lock released. No pushes or other GitHub writes. Full report: work/UPSTREAM-1618-S2IDLE-20261113.md in the owner's m5-studio-prep workspace. |
|
GPT-6.1 Sol on @satchlj's behalf Follow-up localisation on J775c changes the earlier “RTC delivery versus suspend/resume unknown” boundary:
Thus local hardware plus loader can do RTC-woken s2idle today, and the upstream failure is reproducible without depending on alarm wake. Exact failing callback remains unresolved. #1618 is neither implicated nor exonerated; no bootable without-mask control or isolated DT/RTC cause exists. No speculative fix made. The sleep row still needs a clean platform test (plus TB/DCP investigation), then the gated real-sleep probe and five cycles. Two prescribed Shelly recovery cycles were needed after >5-minute SSH retry windows/readings/pings. First recovery not restoring management does not identify the failure stage. Default44 #25 is healthy again; TB carrier1, protected Stage2/default/fallback hashes unchanged, lock released, ESP unmounted, no build outputs created. No pushes. Full evidence/report: work/UPSTREAM-S2IDLE-LOCALISE-20261113.md in m5-studio-prep. |
|
GPT-6.1 Sol on @satchlj's behalf J775c s2idle qualification update: no upstream s2idle row yet; 0/5 qualification cycles attempted. Two independent prerequisites are unrelated to masking Clock PM: the autonomous GPU-mailbox receive poller can fault when its domain is gated (local quiesce candidate prepared), and Read #1710/#1711 and their diffs as the K114c precedent. Live J775c DT confirms both GPU mailboxes share GFX at
With the board-name gate opened, both configurations now reach the real endpoint-state guard: NVMe direct reads, Ethernet carrier/ping, actual Wi-Fi scan, Bluetooth controller and display-manager/service checks passed after each return; post-return PCIe Clock PM readbacks were unchanged, links recovered, GPU remained bound, and no new mailbox error/SError/AER/IOMMU fault signature was found in these test windows. This is unwind health, not real-sleep or GPU-workload qualification. Processors/core are rejected for s2idle by this kernel; RTC probe and five cycles were not run because platform did not pass. Installed Mesa's upstream DRM-name mismatch remains unrelated and no Vulkan result is claimed. No hang or recovery cycle in this task. Returned to healthy default44 #25, seven protected hashes verified, ESP unmounted, lock released and native build directories removed. No guard-admission commit is proposed upstream without successful cycles; patches remain local. Evidence: owner's |
|
GPT-6.1 Sol on @satchlj's behalf J775c follow-up: freshly fetched #1719 head 3b4fee8 does not yet yield a passing upstream s2idle configuration here. Composition: integration aa68b3c + #1618 ccdd14a + #1619 0075a00 + test-only RTC/SPMI, J775c adopted-link admission, ps_gfx apple,sleep-retained matching #1710, and the full #1719 diff. Exact composed head c361df8629e9d5f28bccc9b0109e7f88a87faf7a, native d3retain #1, helper-added arm64.nomte. Freezer rc0/5s; devices rc0/8s. Direct NVMe read, Ethernet link/ping, Wi-Fi scan, Bluetooth, SDDM and GPU binding survived; Clock PM unchanged, no new AER/PCIe Bus Error/DART-IOMMU fault/SError in returned windows. Thunderbolt carrier0 after devices. Platform then hung without returning (07:38:10 EST); persisted journal ends at suspend entry, so neither D3hot acceptance nor the next callback is established. Single distinct TEST-ONLY fab3-soc retention relaxation plus GL9755 acceptance logging, head3659d258e5429d349d2ff38b51b17648c3e2deac / d3fabretain #2, also passed freezer/devices and hung in platform (07:57:58). Audit log did not persist. Processors/core not reached (unsupported for s2idle in this source). No real sleep attempted: 0/5, all unattempted. Revised mailbox quiesce not run because retention did not qualify. These hangs do not attribute causality to Clock PM or #1719. Default44 #25 control returned from 20s RTC s2idle rc0/22s, with no fab3-soc timeout; TB re-enumerated with carrier1. fab3-soc supplies ATC0 while the connected peer uses ATC1; a legitimate peer hold of this exact domain is unproven. Fabric retention did not produce a platform pass, so neither a harmless-warning claim nor a fix is established. Two distinct hanging experiments, four recovery Shelly cycles (two per recovery after required retry intervals), zero intentional experiment power cycles. Final default44 #25 healthy; fallback42 #4/Stage2 and all seven protected hashes unchanged; ESP unmounted, lock free, builds removed. No qualified upstream admission commit or quiesce publication. Local report work/UPSTREAM-S2IDLE-D3HOT-20261113.md. |
GPT-6.1 Sol on @satchlj's behalf
Mask
PCIE_LINK_STATE_CLKPMbefore enabling endpoints on the adopted T6050 host, then walk the enumerated bus to retain that policy. Firmware owns CLKREQ# pads and reference-clock gating here; suppressing L0s/L1 capability bits alone does not mask Clock PM. This is the isolated sufficient boot fix, without the private bus-number, NVMe or suspend/PME changes.Scope: only
t6050_hw(apple,t6050-pcie) setsadopt_link. This covers native M5 Pro/Max/Ultra adopted hosts, including J714/J716 and J775 boards; the separate PCIe-C/tunnel match data and earlier SoCs do not select it. J714/J716 results are not known to us.Hardware evidence from Satya's J775c Mac Studio M5 Max bisection (2026-11-11/12): plain integration
716670b987b23536eafea3b647ffa7f28ef762b7did not return from boot with the retained candidate44 DT or the attempted ported layout. Bus-number preservation alone automatically returned to the default, not as the trial, and was insufficient; old NVMe alone also failed. Clock PM suppression alone atb88dec9637cf3e4ce56d7b146af907ef4d58ff5f, kernel build #6, returned as the trial with management Ethernet, Wi-Fi and root NVMe, using installed Aurab6e6faf4.That kernel also passed the final incremental DT
9c038a05a1aaf2c2722ca1e354b24125011c0f7c, source DTB SHA256bffee06f90270ddb50d933082bdff86f01447a979e470521d5209ea492b0bb84: CPUs0-17, 62GiB, root NVMe, wired/Wi-Fi, USB2/3 hubs and microphone, HDMI connected, USB audio plus two display audio cards, GL9755, four router DT statuses okay, TB20Gbps to alba in both directions and renderD128. SDDM/NetworkManager/sshd active, zero failed units after a userspace stable-sysfs-path service fix. This is enumeration/health evidence, not playback or device stress qualification.Rebased onto freshly fetched integration
de6a8d46f755237a012435a735251a5efb325d34. This exact rebased kernel has not been booted. Original author Satya Benson is retained, deriving from his candidate44caf39be510c0c54ddce8b077021f05b890608683Clock PM policy; DCO signoff and Assisted-by retained.Offline: Clang18 arm64/16KiB
drivers/pci/controller/pcie-apple.obuilds on this exact head (AArch64 ELF verified); checkpatch0 errors/1 commit-prose warning; whitespace check passes. No DT or binding paths edited, so DT/binding checks are not applicable to this driver-only PR. Host details: repository full runner on this exact head completed 248/255 initially; all seven failures were absent historical-object/path controls. After fetching their Aurora fixture revisions, all affected controls passed on this exact head (bcm4377-id1/1, compute-preempt2/2, dma-heap-fd1/1, g15-input-error3/3, neo-auxiliary3/3, neo-stability10/10). This is a complete initial run plus targeted successful reruns, not a second monolithic255/255 run. VM tools are Python3.12.3/Rust1.93.1/Clang18.1.3, differing from hosted CI Python/Rust pins; no hosted-CI equivalence claim.Not covered by this bisection: HDMI replug, audio playback (analog AOP card absent with integration), SD media/physical hotplug/discard, RTC wake or suspend qualification. Historical candidate44 tests are not attributed to this head. The Thunderbolt recovery driver series is separate: R3 booted but stop/start soak failed cycle3 after two passes, not25/25; freezer0/5. No other-board regression result is claimed.
🤖 Generated with Codex (GPT-6.1 Sol)