Repository navigation
Conversation
RyanTheTide
left a comment
There was a problem hiding this comment.
I checked the no-auto-PM policy and the PMP report path through its RCU lookup, spinlock and atomic acknowledgement poll. The IRQ-safe opt-in is scoped to entries that declare it.
I pushed Ryan fixup 753f110cfb17. An already-active domain could inherit AUTO_ENABLE from the loader; skipping the probe-time enable did not clear it. The fix clears it for an explicitly marked domain, checks the register update result, and preserves the firmware-owned and inherited-on ownership gates. Your original commits are unchanged.
The original commits 54147fe5dd80, eaf5e7b2eefd and 4d003c4c9f45 still need your Signed-off-by. Please provide your sign-off for them.
The combined tree has passed the apple-dcp host tests, 63/63, and the Asahi KUnit tests, 86/86. The first defconfig plus asahi.config WERROR build passed; the shipping-config build is still running. The final fixup tree also needs the approved M1 Pro and M2 one-shot checks. This is not merge-ready while those gates and the contributor sign-offs remain outstanding.
|
Final software gates now pass on the combined tree containing these heads and the proposed common config correction in #438. Both defconfig plus asahi.config and the Fedora-base recipe build Image, modules and DTBs with WERROR enabled. The Fedora recipe also covers KUNIT=m. Every requested asahi.config setting survives resolution. Asahi KUnit passes 86/86 and apple-dcp host tests pass 63/63. The targeted J713/J616s binding and DTB checks have no diagnostics. I also pushed Ryan fixup 3523465e20f97 so the new auto-PM update does not replay the sampled hardware-owned BUSY value. The original three commits still need contributor sign-offs. The M1 Pro/M2 candidate boots and #438 review remain outstanding, so this is not merge-ready. |
|
M2 no-regression qualification now passes with this head in the combined source tree 031f7dec92a1bef6b72509b08c5c597f50474adb. The approved one-shot ran 7.3.0-aurora-t3028. A native Apple GPU compute/readback check verified all 4096 words, the checked kernel fault counters stayed at zero, and device counts, active services and SELinux enforcing matched the baseline. This uses the installed system Mesa to exercise the candidate kernel. The machine is back on 73w, where the same check passes again. The test kernel, its GRUB entry and fallback units have been removed. The saved default, boot.bin and pinned DTB setting are unchanged. The M1 Pro candidate check, the three original contributor sign-offs and the #438 common-config review are still outstanding, so this remains not merge-ready. |
|
Final qualification for 3523465e20f973b26d86a02d1f2646753eed4691. The combined test source is 031f7dec92a1bef6b72509b08c5c597f50474adb, tree 36854d3a72e4efdf2c352166498ab436adaf3c48. Both defconfig plus asahi.config and the Fedora-base shipping recipe pass the full Image/modules/DTB build with WERROR enabled. Every requested fragment value survives olddefconfig. Asahi KUnit passes 86/86, apple-dcp host tests pass 63/63, and targeted J713/J616s binding/DTB checks have no diagnostics. Strict source-style checks pass; commit sign-offs are checked separately. The attribution audit found no new material Gravity implementation blocks. Existing GPL-2.0-only Cody Ho and Niklas Sheth credit is preserved. The same candidate image passed approved M1 Pro and M2 one-shot smoke checks against fresh normal baselines. Native GPU compute/readback verified all 4096 words on each device, kernel fault counters stayed at zero, and baseline devices, active services and SELinux enforcing were preserved. Both machines are back on 73w with the checks passing again. Test kernels, task GRUB entries and fallback units are removed. The saved defaults, stock boot.bin files and pinned DTB setting are unchanged. Ryan fixups 753f110cfb17b and 3523465e20f97 clear inherited automatic PM for explicitly marked active domains without replaying the hardware-owned BUSY bit. Code review and shared runtime checks pass. The three original commits still lack contributor Signed-off-by. Not merge-ready until those sign-offs and the #438 review are resolved. |
3523465 to
f7bfba3
Compare
|
Added my Signed-off-by to the three original commits (now a7b4330, 926f161, 26a3ce3). Your two fixups are carried unchanged with their authorship and sign-off. The new head f7bfba3 has the same tree as the qualified 3523465e20f97 (3f4e2d369f8532583a2a14b864eba6dcb10edb5f); only commit messages changed. |
RyanTheTide
left a comment
There was a problem hiding this comment.
The sign-offs are in, and the trees match what was qualified.
Gates on integration/aurora 653c489 with #394, #435, #436, #446 (the carried #445), #427 and #428 merged (test tree 4582b72703d5), without #438:
- Universal recipe (Fedora asahi base, asahi.config, olddefconfig, LLVM=1, CONFIG_DRM_WERROR=y): Image, modules and DTBs build with no warnings, and all 130 asahi.config settings survive.
- KUnit asahi 84/84, drm/apple display set 212/212.
- apple-dcp host selftests 62/63, the same as the base (dwc3-teardown fails there too).
- dt_binding_check and CHECK_DTBS clean for the touched bindings and the J616s, J713, J700, M1 and M2 DTBs.
J616s (M4 Pro, 26.6.2 firmware): this kernel boots like the daily one. Wi-Fi, Bluetooth, audio devices, PMP, NVMe, cpufreq and cpuidle all match, with no DART faults or SErrors and no IRQ-safe genpd warnings. With the T6041 display handoff it also drives the internal panel. The Neo smoke boot of the same image is queued.
RyanTheTide
left a comment
There was a problem hiding this comment.
Sorry, one more round on this one. #395 merged into integration/aurora an hour ago and brought its own apple,no-auto-pm: the binding entry, ps->no_auto_pm in pmgr-pwrstate.c with the power-on and probe paths, and KUnit tests in pmgr-pwrstate-test.c. On an already active domain its probe path also clears the bootloader's auto-PM bit, which is what the fixups here added.
So this branch now conflicts in pmgr-pwrstate.c, and the binding merges into a duplicate apple,no-auto-pm key in apple,pmgr-pwrstate.yaml, which dt_binding_check will reject.
Could you rebase onto the current integration/aurora and keep only the parts the tree doesn't have yet: apple,irq-safe in the PMP report binding and the IRQ-safe pmp-report entries? The pmgr-pwrstate and no-auto-pm binding commits, and the two fixups on top, can go, since the tree covers them now. If the DISPEXT domains need anything the in-tree version doesn't do, say so and we'll add it on top of that. The approval above was for the old base, so I'll re-run the gates on the rebased branch.
apple,irq-safe on a PMP report entry marks an entry that parents the IRQ-safe PMGR power states of a coprocessor: genpd requires the parent of an IRQ-safe subdomain to be IRQ safe as well. Signed-off-by: František Balázsy <frantisekbalazsy@gmail.com>
A PMP device-state entry that parents PMGR power states (which are IRQ safe) must be IRQ safe too, or genpd refuses the subdomain. Setting the state takes a spinlock and polls the acknowledgment atomically, so the entry may run with interrupts disabled. Opt in with apple,irq-safe. Tested on a MacBook Pro M4 Pro (J616s): the DISPEXT0 and DISPEXT1 device-state entries parent the dispext0/1 PMGR chains that power the HDMI and USB-C DisplayPort controllers. Signed-off-by: František Balázsy <frantisekbalazsy@gmail.com>
f7bfba3 to
c254057
Compare
|
Rebased onto integration/aurora a1b269f as requested. Only apple,irq-safe is left (PMP report binding + pmp-report entries); the pmgr-pwrstate and no-auto-pm binding commits and the two fixups are dropped since #395 covers them. The DISPEXT domains work with the in-tree apple,no-auto-pm, so nothing is needed on top of it. dt_binding_check on apple,t8140-pmp-report.yaml is clean. |
A PMP device-state entry that parents PMGR power states must be IRQ safe, because the PMGR states are (
genpd_add_subdomain()WARNs: "Parent ... of subdomain ... must be IRQ safe"). Setting the entry's state takes a spinlock and polls the acknowledgment atomically, so the entry can run with interrupts disabled;apple,irq-safeopts an entry in.Commits.
dt-bindings: power: apple: add apple,irq-safe to the PMP report entries,pmdomain: apple: pmp-report: IRQ-safe entries. No behaviour change without the property.Rebased onto
integration/auroraa1b269f as requested:apple,no-auto-pmis dropped, since #395 covers it.How tested (MacBook Pro M4 Pro, J616s): the DISPEXT0 and DISPEXT1 PMP device-state entries (
apple,irq-safe) parent the dispext0/dispext1 PMGR chains; they power on and off through genpd with no WARN, and the HDMI and USB-C DisplayPort controllers run on them.pmp-report.obuilds on the rebased branch;make dt_binding_checkonapple,t8140-pmp-report.yamlis clean.