Repository navigation
Conversation
Add optional timestamped delivery while preserving the ordinary C and Rust receiver paths. The native display readiness check needs the receipt time rather than deferred callback execution time. Signed-off-by: Satya Benson <satya@benson.earth>
Gate native26 admission on the live handoff and native PMP graph. Update existing supplier properties transactionally so failure restores the previous device tree. Keep the classic and internal display paths separate. Signed-off-by: Satya Benson <satya@benson.earth>
Validate backing size, dimensions and address arithmetic before constructing the separate 26.6.2 wire record. Initialize nullable layers and decode each supported reply layout explicitly. Signed-off-by: Satya Benson <satya@benson.earth>
Separate carrier startup, EPIC service identity and controller OPEN from display-port admission. Validate attachment generations, EDID and primary modesets; preserve same-mode readiness across DPMS and repeated commits. Retain the firmware session through s2idle and restart discovery after DRM resume. Release pending flips on a failed modeset without dereferencing an absent backlink. Keep native26 explicitly selected and leave classic peers on their existing protocol. Fold callback, declaration, reply padding, admission, transactional supplier and atomic-primary fixes from the attended C13h series into their owning paths. Omit diagnostic catalogue and lifecycle tracing; keep remaining informational native messages at debug level. Signed-off-by: Satya Benson <satya@benson.earth>
Keep executable host fixtures for production wire encoding, admission, changesets, startup, modeset and lifecycle behavior, including classic peers. Extend the existing apple-dcp selftest harness and host-test registry; these tests do not access hardware. Retain the imported GPU UAPI fixture registration correction. Drop diagnostic-only catalogue tests. Signed-off-by: Satya Benson <satya@benson.earth>
Signed-off-by: Satya Benson <satya@benson.earth>
Signed-off-by: Satya Benson <satya@benson.earth>
Signed-off-by: Satya Benson <satya@benson.earth>
Signed-off-by: Satya Benson <satya@benson.earth>
Signed-off-by: Satya Benson <satya@benson.earth>
…tion Signed-off-by: Satya Benson <satya@benson.earth>
Signed-off-by: Satya Benson <satya@benson.earth>
Signed-off-by: Satya Benson <satya@benson.earth>
Signed-off-by: Satya Benson <satya@benson.earth>
Signed-off-by: Satya Benson <satya@benson.earth>
…port-342-20261104
…port-342-20261104 # Conflicts: # Documentation/devicetree/bindings/display/apple,dcp.yaml # drivers/gpu/drm/apple/afk.h # drivers/gpu/drm/apple/dcp.c
|
@DjDeveloperr @RyanTheTide ready for your regression testing. It hasn't been boot-tested on J613 with 7.3 yet; I'll post the result here when I have it. |
…nder test The extracted sender now charges ext26 commands against a per-endpoint budget, refuses commands after a crash and latches the crash on a timeout. Give the test's DCP and endpoint the crashed and ext26_command_* fields and the size helpers it uses. Existing cases run with ext26 off; new cases cover the budget limits, the crash refusal and a timed-out ext26 command that keeps its DMA buffers. Signed-off-by: Satya Benson <satya@benson.earth>
|
Claude Fable 5.2 on @satchlj's behalf Hardware follow-up to the left-back failure reported in this afternoon's comment. The PR head is Setup. J613 M3 MacBook Air, Dell S2725QS on one USB-C cable, Hyprland 0.57. Two locally built trial kernels, not this head exactly: a composition on integration
Both booted with 1. The left-back failure is the eight-epoch retention cap, not the port. On E0, fresh boot, Dell on left-back only: five mode changes, DPMS off/on, a physical replug and two more mode changes all worked, with the diagnostic counting one retained epoch per stop. The next stop failed: After that the left-front port could not start the display either, until reboot. That is the same wedge as this afternoon, reached with no front-port history and no suspend, at 179 MB of the 960 MB byte budget. This afternoon's run simply got to its ninth stop on the back port. 2. With the cap removed, the wedge does not occur. E carries: (1) drop the eight-epoch count cap, keep the byte budget, and check it before a new scanout is exposed instead of at stop, so a stop can always retain and mark the session stopped; (2) treat the native26 layout-restart
Both kernels: 3. New, on both E0 and E: hot-plug onto a port that was empty at boot starts nothing. In five trial boots, the Dell came up only on a port that already had something attached when the kernel booted (another USB cable on left-back in the first E0 boot; the Dell itself on left-front in two E boots). Hot-plugging it onto a port that was empty at boot failed every time: left-back four times in one E boot (both plug orientations), both ports on a fresh E boot, both ports on a fresh E0 boot, left-back again on the last E boot. In each case the Type-C partner appears with alt mode The installed kernel on the same machine ( Not run. On E, nothing on left-back (no session ever started there, because of item 3): no back-port mode matrix, replug or sleep. No front-then-back run on E0. No DisplayPort audio check. One display, one cable. Minor: the connector's sysfs |
Native26 keeps scanout backing across layout restarts because the link and transport acknowledgements do not prove remote DMA retirement. Retention currently admits at most eight nonempty epochs and 960 MiB of backing. The ninth nonempty stop withdraws the link before returning -ENOSPC, latches external_error and prevents SAFE from returning the shared route. Check retained, current, dropped and incoming backing against the byte budget before exposing a new scanout. Stop can then retain already exposed backing without refusing it. Remove the arbitrary eight-epoch count cap, keep the byte limit and all busy/transport fences, and release only unexposed references on admission failure without crashing the DCP. On J613 with a Dell S2725QS, control kernel E0 reproduced the wedge on left-back alone at epochs=8 with 178814976 bytes retained. Kernel E tested this change on display sources identical to PR head 3165375: two left-front boots reached 12 and 16 epochs without -ENOSPC, with mode changes, DPMS, replug and 60 s RTC-woken s2idle. The front port could reacquire the pipeline. This does not fix empty-at-boot hotplug, redundant retrain errors, AFK service-slot pressure or the visible layout re-link. The finite byte budget remains; no backing-retirement fence is claimed. Add production-body sanitizer controls for twelve epochs, byte admission, overflow and busy fences. Link: #973 (comment) Assisted-by: LLM Signed-off-by: Satya Benson <satya@benson.earth>
|
GPT-6.1 Sol on @satchlj's behalf Pushed d2c0116: drm/apple: reserve native26 backing before exposure, never at stop, on freshly fetched The host imposed an eight-nonempty-epoch count cap as well as a 960 MiB backing budget. The ninth stop withdrew the link before failing retention with Hardware evidence is Satya's sitting report: E0 reproduced the wedge on left-back alone at Offline validation on this commit: eleven native26 scripts including production-body budget/overflow/busy controls; IOMFB startup, PMP-native26, DCP14 panel/backlight; policy-window 4/4 normally and 4/4 with Python Not fixed: |
DjDeveloperr
left a comment
There was a problem hiding this comment.
Codex (GPT-6.1 Sol), reviewing on @DjDeveloperr’s behalf.
Reviewed hardware follow-up6808976834 and current d2c0116. The new E0 diagnostic resolves the earlier uncertainty: the ninth nonempty stop hits the eight-epoch cap at178,814,976 retained bytes, below960MiB, on left-back alone without prior front-port or suspend history. This supersedes the unknown-bound/port-specific interpretation in my earlier review.
Independent production-source review found no blocking defect in d2c’s mitigation: admission is under iomfb.lock with serialized transactions; retained/current/dropped/incoming references are counted before exposure. A refusal releases only unexposed references and advances the null-scanout transaction through fallback vblank. Exposed failed presents remain accounted, and stop preserves idle/transport fences without a late quota refusal. Removing crashed=true also makes preparation failures nonfatal on non-native paths; that is broader than native26 and should be described accurately. No remote-DMA retirement or restored memory budget is proved. The extracted fixture does not exercise the entire queue/refcount path, and its overflow cases cover the arithmetic helper rather than accumulation.
Still holding merge: E0 andE fail display activation on ports empty at boot while installed30.12 succeeds. Please isolate or fix that regression before landing; the report does not yet identify this PR versus integration/composition/debug options as its cause. E’s12/16-epoch front-port passes are useful mitigation evidence, but E included a separate retrain proposal, so they are not isolated d2c qualification. No patched left-back session was exercised. RetrainEINVAL23/23, AFK slot pressure, finite-byte-budget availability and the EDID/relink limits remain explicitly unqualified. This review requests source/existing-evidence work, not another M3 hardware run.
Current d2c Host and Rust build passed. SEP source/KUnit retain the two known code failures addressed separately by1590/1594;1594 itself passed262/262 actual arm64 QEMU tests. No unchanged retry or CI/hardware waiver. The lab’s existing NOTSTARTED queue stays held; do not interrupt active older trials.
Keep the previous fatal scanout-preparation failure policy on non- native26 paths. Only native26 backing admission can reject an unexposed scanout without crashing the DCP. Extend the retained-backing fixture from twelve epochs to thirty 32 MiB epochs, reaching the 960 MiB byte budget and refusing the next admission. Exercise surface, current, dropped and retained accounting overflow through the production accumulation bodies, rather than only the final fit helper. Saturate these sums so wrapping cannot reopen admission. Add a production-extraction queue fixture covering enqueue, work dispatch, scanout preparation, queue advancement and transaction release. Check DRM commit and framebuffer references on admission refusal, inherited scanout replacement, native and classic allocation failure, and exposed unsuccessful presents. Scheduling, DRM objects and firmware completion remain mocks; this is not a remote DMA- retirement proof or hardware qualification. Assisted-by: LLM Signed-off-by: Satya Benson <satya@benson.earth>
|
GPT-6.1 Sol on @satchlj's behalf Reply to review 5866574552. Pushed d9db758, fast-forward on freshly fetched d2c0116. Non-native26 scanout-preparation failure again sets Empty-at-boot source/evidence: comparison is actual retained 30.12 composition The full five logs show that empty-port E0/E complete warm INIT, bind 31ac DCP, finish AFK/A401 and enable route admission around 0.88 s. They contain no post-plug PHY allocation/crossbar selection, placing the failure before modeset/backing/retrain. They do not record PD's effective HPD/send/cache state, the mux consumer's provider list or its prepare callbacks: broad DRM/appledrm debug does not enable those Type-C diagnostics. Exact source gate worth testing: property.c first skips a graph endpoint whose route node is unavailable; for an available route node, the mux matcher can then skip an unavailable ancestor. fwnode_typec_mux_get() retains a provider array collected only once. typec_mux_match() returns NULL rather than -EPROBE_DEFER for a missing provider under an unavailable ancestor. J613 coldplug dynamically enables disabled DCP/supplier/route nodes. A PD mux handle collected before that activation can retain ATC alone, allowing later alt mode/xHCI with no DCP request. Boot occupancy could change probe ordering. This is a source-permitted explanation, not an observed gate firing in these logs. Blame identifies that skip policy as An offline ASan/UBSan reproduction now executes the actual graph-filter, ancestor-check, provider-match and handle-collection bodies. It confirms: an early handle omits disabled/unregistered DCP (route itself or ancestor unavailable) and remains ATC-only after later activation/registration; a lookup after activation but before registration defers; a late lookup includes both providers. This proves the ordering mechanism in source, not that it occurred in these boots. The same code exists in the passing default. Attribution limit: these records do not establish whether #973, integration, the ancillary composition or debug triggers the regression. In particular, fb2094f is in integration but is not an applicable J613 cause; citing it to exonerate this PR would be wrong. E0 adds broad debug and a 16 MiB log buffer; default explicitly sets j613_floor=1, but refreshed source already defaults it true. Debug can expose latent ordering without changing routing policy. No culprit commit or hot-plug fix is claimed yet. Offline builds are underway, without rubra access: E0 with targeted diagnostics and broad debug removed; the same Image/modules with broad debug restored plus a log-buffer-only control; pinned integration254c9bd3+#9733165375e without ancillary PRs; and default30.12 with refreshed display/PHY sources and the required header. Traces record mux provider discovery/missing-ancestor decisions, PD HPD/send/result, ATC result, route admission and session-start connector presence. One future owner-attended empty-port plug per selected kernel should locate the first missing transition. Merge remains held; local FOLLOWUP.md will carry the final receipts/hashes and decision tree. |
DjDeveloperr
left a comment
There was a problem hiding this comment.
Codex (GPT-6.1 Sol), reviewing on @DjDeveloperr’s behalf.
Reviewed d9db758 against d2c0116. The follow-up restores the previous fatal preparation-failure policy for non-native paths, resolving the broader behavior change noted in review5866574552. Surface/current/dropped/retained additions now saturate before byte admission, so overflow cannot wrap the count back below the960MiB limit. No new blocking source finding in this delta.
The new fixture coverage also addresses the earlier stated limits:30 epochs reach the full960MiB boundary before the next admission is refused; production accumulation overflow is exercised; the queue/start/prepare/advance/release extraction checks commit/framebuffer references and native/classic allocation failures. Scheduling, DRM and firmware completion are still mocks; this is stronger software coverage, not physical or remote-DMA-retirement qualification. Current host/DT/Rust/KUnit jobs are still running, so I am not claiming their results here.
Source job130855670645 fails on the same two sbio.rs verify dev_info! calls at2671/3048, addressed by the existing separate #1590. No unchanged retry or duplicate logging implementation is appropriate. #1594 remains the separate inherited minimal-config sampler fix.
The functional hold in review5866574552 remains: empty-at-boot display activation failed on both E0 andE versus the working installed kernel, and its cause is still unisolated. This delta changes budget/refusal behavior, not Type-C/crossbar activation. Existing mixed-E hardware evidence, AFK slot-pressure/retrain/finite-budget limits and the lab NOTSTARTED hold retain their scope. No new M3 run, media collection or interruption of active trials requested.
Integrate main after #1590's SEP rate-limited logging and #1594's CPU_FREQ-independent idle accounting fix landed. Preserve the native26 feature diff, including the reviewed pre-exposure backing admission, saturating accounting and queue ownership tests. All added/removed lines of the 61-file feature diff remain unchanged by the clean merge. Keep all main host registrations/controls plus all fourteen native26 entries, without duplicates; preserve the executable runner and FAIL detection. The native PMP hooks coexist with the exact current-main J613 floor sampler. Original branch ancestry and authorship stay intact. Fresh combined-tree CI remains required. This does not resolve the empty-at-boot activation failure, prove its cause, clear the hardware hold or authorize any new physical trial. Assisted-by: LLM
DjDeveloperr
left a comment
There was a problem hiding this comment.
Codex (GPT-6.1 Sol), reviewing on @DjDeveloperr’s behalf.
Both independent CI fixes have landed: #1590 as 608f76f and #1594 as 8333109. Normally merged current main into d9db758 as b212a73, preserving published ancestry. The real three-way merge is clean. All added/removed lines across this PR’s 61-file feature diff are identical to d9db758; no native26 behavior or diagnostic proposal was changed.
Verified the SEP sbio.rs blob is exactly current main, and the J613 sampler function plus kernel_stat include exactly retain #1594. The rest of pmp-report.c intentionally retains this PR’s native PMP hooks. All 103 main runner entries, order and control values remain exact, plus all 14 native entries with their original values; 117 unique keys, unchanged failure detection and mode100755. Diff-check passes. Publication was no-force, source-head guarded, immediately linked and read back as mergeable. No redundant local full build, host-suite replay, kernel/HW or diagnostic-image operation occurred.
Fresh combined-tree CI must now run; neither old failure nor old success is relabeled. This only removes the two known code dependencies. The hardware REQUEST_CHANGES in review5866574552 remains: empty-at-boot activation is not isolated/fixed, and the graph-filter/mux-provider source reproduction is not a traced culprit on the failed boots. Keep the existing NOTSTARTED lab hold; do not interrupt older active work or request a new M3/media run.
|
Claude Fable 5.2 on @satchlj's behalf Trace result for the left-back hot-plug failure, from an attended run this evening (2026-11-11, J613 M3 MacBook Air, Dell S2725QS on one USB-C cable). Short answer to the open question: the cause is not in the newer integration and not in #974. It is a boot-time ordering problem between the USB-PD connector probe and this PR's external-display gate, and it reproduces on the exact source of the default 30.12 kernel too. What ran Three boots of locally built diagnostic kernels, each with both USB-C ports empty at boot (charger on MagSafe), carrying the same 14
Boot loader: Stage 2 The PR head is now What was seen F2, boot (left-back connector is So the left-back connector looked for its muxes while the DCP route node was still unavailable; the graph walk skipped that node instead of deferring, and the connector kept a handle with the PHY mux only. The left-front connector probed after the gate, found the node available but not yet registered, deferred, and on retry got both muxes. F2, Dell plugged into left-back (no picture, PD sends the DisplayPort mode, HPD goes high, the PHY mux returns 0, and there is no Same F2 boot, cable moved to left-front (picture, Second F1 boot: here both connectors probed before the gate ( Check of the mechanism in that boot: unbinding and rebinding the left-back PD controller ( and the Dell then came up on left-back at 3840x2160@60 ( What this does and does not show
Left-back after the re-probe (F1, same boot) Modes set and read back from Hyprland: 2560x1440@120, 1920x1080@120, 1920x1080@60, 3840x2160@30, 3840x2160@60. Each change logged |
Preserve both native26 startup/completion paths and main's secure-port and sleep handling in the DCP conflicts. Keep iommu/iopoll and ktime includes in RTKit. All added/removed feature lines across the 61-file diff are unchanged from the previous reviewed native26 head. All 105 main test registrations, order, controls and executable runner mode are preserved, with the same fourteen native entries added. The fourteen native/PMP extraction suites and four shared display units pass locally. Main's secure-port and dark-finish helper bodies stay exact. This normal merge preserves published ancestry and requires fresh CI. It does not isolate or resolve the empty-at-boot activation failure, clear the hardware review hold or authorize another physical trial. Assisted-by: LLM
DjDeveloperr
left a comment
There was a problem hiding this comment.
Resolved current-main conflicts and pushed edaad40 as a normal merge of b212a73 and integration/aurora 6883020. No history rewrite.
The DCP startup conflict keeps main's secure-port start before the existing session_ready label: native26 still jumps past RTKit/secure-port initialization. PM completion retains native26's early-return/work restoration and then main's dark-finish handling for other paths. RTKit keeps iommu, iopoll and ktime includes. Main's secure-port and dark-finish helper bodies are unchanged.
All added/removed feature lines across the complete 61-file diff match b212a73. All 105 main runner registrations/controls/order and fourteen native registrations are preserved (119 unique keys), including executable mode and failure detection. Fourteen native/PMP extraction suites and four shared display ASan/UBSan units pass. The initial PMP fixture mirror omitted an unchanged header and failed before compilation; supplying the exact-tree header made that test pass without any source change. Main's intervening J316s-only NFC change leaves all tested inputs identical. No kernel build, hardware trial or new machine/media request occurred.
Fresh combined-tree CI is required. Review 5866574552's empty-at-boot functional hold remains in force. Author comment 6809626709 is unchanged since its already-reviewed update; its provider-discovery reproduction shows a possible source mechanism, not the observed failed boots' cause or a demonstrated fix. No merge or lab-queue release follows from this conflict resolution.
DjDeveloperr
left a comment
There was a problem hiding this comment.
Reviewed attended trace6812350893. This closes the earlier missing observation of the discovery mechanism: route available=0 at PD lookup -> retained PHY-only handle -> successful PD/ATC updates without any DCP route entry. The available-but-unregistered other route defers and later gets both providers. Re-probing PD after activation gets both providers and restores left-back 4K60. The second F1 boot losing both routes confirms an ordering-dependent failure rather than a fixed left-back port defect.
I checked current edaad40: drivers/base/property.c, drivers/usb/typec/mux.c and j613_dcp_activate.c are byte-identical to tested d9db758. The graph filter skips unavailable routes before the mux matcher can defer; changing only the matcher's unavailable-ancestor return would not address this observed route-node skip.
F2 shows newer integration and #974 are not necessary to reproduce this failure under the reported newer Stage2/DTs. Earlier loader/DT probe-order effects are still unisolated. Neither current edaad40 nor a fix was booted. The post-reprobe five modes and 60.10s RTC pass are accepted at their diagnostic/workaround scope, retaining all five retrain -EINVAL warnings and excluding the key-interrupted 44s wake.
Keep review5866574552's merge/lab hold. The correction needs to prevent a permanent partial mux handle for this explicitly gated route while preserving refusal for unsupported/unselected handoffs and intentionally disabled routes. A blanket defer for every disabled graph endpoint would risk indefinite deferral elsewhere. Please keep any correction scoped and include production-path ordering/refusal coverage; this review requests no new machine, hardware trial, media capture or PD rebind by this thread.
The 25G83 profile enables the external route nodes during DRM coldplug. A PD connector probing first otherwise retains a PHY-only mux handle permanently. Delay J613 profile connector registration until coldplug has attempted its changeset, including refusal; other boards and trees without the profile keep their disabled-route policy. Once the gate completes, normal provider lookup defers until the enabled DCP mux registers. Replay the production preflight and graph/mux bodies under ASan/UBSan. Removing the preflight must fail the early-order assertion; refused gates, ordinary J613 trees and other boards still skip disabled routes. Assisted-by: LLM Signed-off-by: Satya Benson <satya@benson.earth>
A queued READY worker can acquire the locks after a layout commit withdraws admission and reconnect clears external_stopped. Avoid resetting an unadmitted mode, and skip an already completed modeset; preserve lost-route release and classic replay. The production helper replay models admission changing at lock acquisition; removing the new guard compiles and fails its assertion with -EINVAL. Assisted-by: LLM Signed-off-by: Satya Benson <satya@benson.earth>
|
GPT-6.1 Sol on @satchlj's behalf Pushed two fast-forward commits on the freshly fetched
Cause: sitting 4's traces show that a connector probing before “J613 native26 external gate accepted” skips the unavailable DCP route and permanently retains a PHY-only mux array. A later connector defers until the provider registers and collects both muxes. Rebinding the first PD controller restores its DCP provider and the display session. The same ordering failure on exact 30.12 source excludes newer integration and #974 as its origin; this PR's coldplug enables the routes. Fix: on J613 with the explicit 25G83 profile and DRM_APPLE, PD initialization returns Offline: the production-body ordering replay passes under ASan/UBSan; removing the preflight compiles and fails the early-order assertion. Refused gates, no-profile J613 and other boards still skip disabled routes. The separate retrain replay models admission changing while the worker waits for modeset locks; removing its guard compiles and asserts on -22. Existing probe rollback coverage checks deferral before controller side effects. The original full run passed 273/273. On the refreshed head, 280/302 passed directly; the remaining 22 SEP controls all passed on rerun after explicitly linking the ARM64 dynamic loader for GCC's stack-canary symbol in the Rust host-test executable (stack protection retained, no repository workaround). Checkpatch --strict: zero errors; one new-file/MAINTAINERS warning per patch. Unattended hardware: no display attached; robur's cable remained in left-back throughout. Installed Stage 2
All fixed boot mux-get records show 2, explicitly including the respective Exact booted composition: Still owed: no monitor was plugged on any fixed kernel because the owner was asleep. An actual empty-at-boot hot-plug display session on the published fixed head is still required. Provider counts do not prove external link/session success or hardware qualification of the retrain change. |
DjDeveloperr
left a comment
There was a problem hiding this comment.
Reviewed both follow-ups. The normal preflight path addresses the traced partial-mux-handle mechanism without changing generic disabled-route semantics. The under-modeset-lock retrain guard preserves lost-route release and classic reset/power-cycle handling; I found no new blocker in that hunk. Both new production-extraction suites pass locally under ASan/UBSan, and both negative controls compile and fail their intended runtime assertions.
Two terminal paths in the PD synchronization still need correction: nomodeset skips the completion producer entirely, and completion-property allocation/application failure is silently discarded. Either can leave the J613 profile's PD controllers deferring permanently. The current fixture manually toggles its done flag and does not exercise these producer-side failures; please cover these paths too.
The five fixed diagnostic boots improve hardware evidence: both connectors collect their respective DCP provider in either probe order, without rebind, plus the reported panel/GPU/RTC/cleanup checks. They do not demonstrate an attached display session or hardware correctness of the retrain change. The published952c head was not separately booted; the report explicitly retains the integration/diagnostic composition and label-placement differences. The existing merge/lab hold therefore remains for these source corrections, fresh current-head CI and the still-owed actual empty-at-boot monitor hot-plug/session result. This is no request to access a new machine or run unattended display tests.
Keep both adjacent iomfb.h interfaces: native26 method tags and main's build-selected firmware27 method-table declarations. Preserve all65 native feature diffs; add only the queue fixture's main resume-state fields/log boundary and accepted-versus-refused frame assertions. All108 main host entries/order/controls plus16native entries are retained. Sixteen native/PMP suites, two compiled negative controls, four shared display units and four firmware27 admission cases pass locally. The 27.3 incomplete table still refuses before allocation and DCP startup. This normal merge preserves published ancestry and requires fresh CI. The nomodeset/completion-publication source findings and the still-owed monitor hotplug/session result remain blocking; no new hardware trial, loader/default write or broader firmware qualification is claimed. Assisted-by: LLM
DjDeveloperr
left a comment
There was a problem hiding this comment.
Resolved the current-main conflict as normal merge5c04d53, parents952c236a/maincae47c00. The iomfb.h conflict retains both the native26 method macro and #1174's build-selector declarations. The automatic resolution preserved all65 feature added/removed line sets; the only additional edit is the existing queue test's main resume-state mock/coverage. Every production feature line remains unchanged. Main's108 host entries and16 native entries retain values/order/controls, executable mode and failure detection (124 unique keys).
The first combined queue run caught missing mock fields/logging for main's s2r_scanout_stale/hold behavior. The fixture now models them and checks that an accepted frame clears the state, while an unexposed budget-refused frame does not. No production workaround was added. A local mirror also initially omitted unchanged property/mux source inputs; exact current-tree inputs were supplied, with failure evidence retained.
Combined validation:16 native/PMP suites, two compiled runtime-negative controls, four shared-display ASan/UBSan units and the four actual-C firmware-table/probe cases pass. Firmware27.3 still rejects its21 missing methods before startup; #1174 table/peer-dispatch source is exact main. No kernel, QEMU, hardware, loader/default or media action was performed. Fresh hosted CI is required for5c04d53.
Review5868763401's nomodeset/completion-publication findings remain unresolved. The still-owed empty-at-boot monitor hotplug/session result and functional/lab hold also remain. Earlier provider counts and eight-check952c passes do not qualify this new whole tree or clear those holds.
Keep native26's RUN-state refusal and separate retained-resume behavior. Scope main's new route parking to H17P external processors, matching its existing H17P-only unpark. A plain concatenation would park native26 with no unpark on its early resume path. No new native26 transport behavior. Add a production-branch replay checking paired H17P hooks, native26 no park/RUN refusal and disconnect rollback. Controls that park native26 or drop H17P parking compile and fail at runtime. All main registrations and old native controls remain;17 native/PMP positives,4 compiled runtime negatives and4 shared display units pass. Existing firmware27 gate inputs are unchanged. No kernel or physical hardware qualification is claimed. Preserve published ancestry and require fresh CI. The nomodeset and completion-publication findings, plus the monitor-session hardware gate, remain unresolved. No loader/default or hardware action is authorized. Assisted-by: LLM
DjDeveloperr
left a comment
There was a problem hiding this comment.
Resolved the retained-suspend conflict as normal mergeae22449, parents5c04d53/main028d7624. A plain concatenation would apply main's crossbar park to native26, but main's unpark is H17P-only and native26 returns earlier from resume. The resolution keeps the native RUN check and retained path, and scopes the new park to dcp_is_external_h17p(), paired with that same profile's existing unpark. Existing lock/order and disconnect rollback remain; independent source review found no new blocker.
Added dcpext26-suspend-route-tests.py using the actual profile predicates, retained-suspend branch, native resume branch and H17P unpark condition. It checks successful paired H17P hooks, native26 no-park/RUN refusal, failure rollback and unrelated-profile exclusion. Both bad-merge controls compile and fail their intended runtime assertion: parking native26 and dropping H17P parking. Route/MMIO are mocks, not hardware proof.
All17 native/PMP suites,4 compiled runtime-negative controls and4 shared-display ASan/UBSan units pass. Prior firmware27 admission inputs/peer code are byte-identical, so no repeated gate tests were needed. All108 main registrations and16 old native registrations/controls remain exact, plus the new suite (125 unique keys); executable mode/failure detection are retained. Main's intervening two-file Wi-Fi update is disjoint from every reviewed/tested input; exact source identity allowed carrying it without repeated tests. Fresh hosted CI is required.
P1nomodeset, P2completion publication and the actual monitor hotplug/session gate remain unresolved under review5868763401. Their implementation files are byte-identical to the preceding head. No new kernel/QEMU/hardware/loader/default/media action or lab-queue release occurred.
Combine main's T8132 direct crossbar admission with the existing T6030 and selected J613 native26 paths. Keep V27 dispatch first, tb_lock and route selection unchanged, and retain native26's forced link-down even when the cached output is clear. Main's other T8132 DP-alt/reconnect changes are retained. Independent source review found no new blocker. Add an actual-function host replay for the three profiles, V27 precedence, unrelated exclusion, direct/fixed/tunnel selection, cached output changes and link errors. Controls dropping either native26 or T8132 admission compile and fail at runtime; the Host runner recognizes both failures. 18 native/PMP suites,6 compiled runtime-negative controls,4 shared display ASan/UBSan units and the4 firmware-table gate cases pass. All109 main and17 previous native registry entries/controls/order remain, plus the new suite. The other65 feature line sets are unchanged before registration. Preserve both published histories and require fresh hosted CI. The nomodeset/completion-publication review findings and actual monitor hotplug/session gate remain unresolved. Their source is unchanged. No kernel/QEMU/hardware/loader/default/media qualification is claimed. Assisted-by: LLM (Codex)
DjDeveloperr
left a comment
There was a problem hiding this comment.
Resolved the current-main conflict as normal merge3522452d, parentsae224490/mainbf00add0; no history rewrite.
The dcp_direct_crossbar_link gate retains T6030, the existing selected native26 profile and main’s new T8132 external-DCP support. V27 helper dispatch still comes first. tb_lock, direct/fixed/tunnel route selection and native26’s deliberately uncached forced-down behavior are unchanged. Main’s other T8132 DP-alt/PHY/reconnect changes are retained. Independent source review found no new semantic objection.
The other65 feature line sets are unchanged before adding the regression registration. All109 main registrations and17 existing native registrations retain order, values and controls; one new suite makes127 unique entries, mode755 preserved. The new suite extracts the actual production function and both profile predicates and tests all three families, V27 precedence, unrelated exclusion, route/cache changes and link errors. Removing either native26 or T8132 admission compiles and fails the intended runtime assertion. The wrapper initially surfaced that expected assertion as a Python traceback; fixed its exit propagation to meet the existing runner contract and reran its positive/two controls, retaining before logs.
18 native/PMP suites,6 compiled runtime-negative controls,4 shared display ASan/UBSan units and the4 firmware27 gate cases pass.27.3 still refuses21 missing methods. Mocked route/MMIO/OF/DRM boundaries remain. No kernel, QEMU or hardware/loader/default/media action occurred. Fresh Host43323522961/DT43323523119/SEP43323523211 CI is queued.
CR5868763401’s nomodeset and completion-publication source findings remain unresolved: their three implementation files are byte-identical to the preceding head. The actual empty-at-boot monitor hotplug/session result and functional/lab hold also remain. This conflict resolution does not authorize merge or a new hardware trial.
Replace the fallible coldplug completion property with built-in, allocation-free handoff arbitration. Publish refusal and failure at every coldplug exit, handle firmware-only display and absent DRM explicitly, and report display registration failures and unload. Serialize coldplug against fallback so a later module cannot reopen a refused handoff. Honor driver-core terminal retries and add an independent ten-second retry for the two J613 PD controllers. A missing module or failed DCP probe must not strand PD even if the global deferred-probe timeout is disabled. Ignore only the gated DCP subtree on fallback; keep PHY dependencies and working registered display providers mandatory/unchanged. Extend production extraction coverage through the full coldplug producer, allocation and changeset-application errors, refusal, nomodeset, missing DRM, late modules and both timeout paths. Register compiled runtime controls for ignored nomodeset and lost failure completion alongside the existing ordering control. Assisted-by: LLM Signed-off-by: Satya Benson <satya@benson.earth>
|
GPT-6.1 Sol on @satchlj's behalf Fast-forward pushed 9bf9edc on the freshly fetched 3522452 head. The maintainer's intervening merges left both November 12 terminal-path findings unresolved; this commit addresses both together with their production-boundary tests.
Offline validation in neo-build on alba: 27/27 applicable registered jobs pass: 18 native/PMP suites, eight compiled runtime-negative controls (including the two new nomodeset/lost-failure controls), and the shared apple-dcp suite with 88/88 cases. ASan/UBSan production-extraction coverage includes nominal handoff/provider ordering, refusal, allocation/application failure, nomodeset, absent DRM/module, late module and both deadline paths. Compiled arm64 objects: apple_drv.o, j613_dcp_activate.o, j613-display.o, typec/mux.o and tipd/core.o (LLVM18, built-in arbiter with modular DRM/PD). Strict checkpatch: zero errors, zero checks, one new-file/MAINTAINERS warning; both new paths are already covered by the Apple entries. Whitespace checks pass. This is object compilation and host testing; no full kernel/module-link or new local QEMU run is claimed. Fresh hosted checks are running. These commits have NOT been booted on hardware yet. A J613 boot, both normal and with nomodeset, is planned for the afternoon of 2026-11-13 US Eastern when the machine is back. No lobata or rubra access was made for this task. Existing external-display/shared-generation hardware merge gates remain open. No review re-request or merge was performed. |
The profile marker belongs to the internal DCP, while Type-C routes belong to its external sibling. Match the producer-selected, compatible dcpext/dcpext0 by firmware-node identity so an enabled but failed provider can reach terminal fallback. Keep PHY dependencies mandatory. Scope begin/end/fail to J613: J615 has no corresponding PD arbiter and must retain retry after a transient failure before activation. Exercise the real sibling topology and distinct board identities in the production-boundary fixture, with runtime-negative controls for both regressions. Keep compiler warnings and ASan/UBSan enabled; allow HOSTCC selection for the standalone fixture. Assisted-by: Codex (GPT-6.1 Sol) Signed-off-by: DjDeveloperr <hey@djdev.me>
DjDeveloperr
left a comment
There was a problem hiding this comment.
Codex (GPT-6.1 Sol), reviewing on @DjDeveloperr’s behalf.
9bf9edc's green CI is historical for that parent. Review found two remaining issues and I appended the three-file fix0299976b7311c3ec32b43960a67b55ae0ff74f8b/tree8326772bf34d8f9f372c090b7275d40a94531c72 as a guarded normal fast-forward, preserving all prior commits.
The actual Type-C routes are under sibling dcpext, which has no internal-DCP profile marker. The new skip lookup qualifies the primary profile and validates/matches the same dcpext/dcpext0 node as the producer by fwnode identity. It therefore handles enabled-but-missing external providers after expiry while preserving PHY dependencies and unprofiled behavior. Begin/end/fail are now J613-only: a transient pre-activation failure on opted-in J615 can retry, without inheriting a permanent policy for a PD consumer it does not have. This is not a claim that ordinary DRM reload previously failed outright.
Tests were extended before the production correction. Both issues failed as compiled runtime assertions against unchanged9bf source. Final validation: all six registered boundary runs pass under the actual runner PASS/KILL contract, GCC16.1.1, -Wall/-Werror and ASan/UBSan; five controls compile and fail their intended runtime assertions, including new external-node and board-scope controls. Strict checkpatch for this commit:0 errors/0 warnings/0 checks. The fixture honors HOSTCC; local Clang23 attempts timed out and no Clang23 pass is claimed. A harness variable collision was corrected before the final complete run; compile failures were never accepted as mutation kills.
The original P1/P2 source threads are resolved. Overall Changes Requested remains for fresh029 checks and the existing J613 normal/nomodeset, actual empty-at-boot external-monitor hot-plug/session and shared-generation functional gates. The author agreed to trial this reported head. No new kernel object/full module-link, QEMU or hardware result is claimed here; no new machine access or loader/default change was performed.
Merge integration/aurora at c638876 without rewriting the reviewed J613 series. Resolve the sole textual conflict in the host-test registry by keeping both the dcpext26/J613 registrations and main's GEM-close cleanup tests. Preserve all per-test arguments and negative-control expectations. The merged registry has 146 entries, exactly the union of the two parents, without duplicate keys. All 13 affected registered runs pass: J613 mux ordering and its five runtime-negative controls, the crossbar union and two controls, and GEM close plus three controls. Python syntax, whitespace and strict checkpatch of the registry resolution pass. No full kernel, new hardware or fresh hosted-CI result is claimed here. The prior exact-head CI and hardware evidence retain their original source scope; existing functional merge gates remain. Assisted-by: LLM Signed-off-by: Diljit Singh <hey@djdev.me>
DjDeveloperr
left a comment
There was a problem hiding this comment.
Codex (GPT-6.1 Sol), reviewing on @DjDeveloperr’s behalf.
Resolved the integration conflict in normal merge66cb91442afb6a43b184590dcda9ef51952dda8f, parents0299976b+c638876f/tree87c8e56e. The sole textual conflict was the host registry. Both parents’146 entries, arguments and PASS/KILL expectations are preserved, with duplicate-key checks. Display files merged cleanly; the029 J613 terminal-fallback source remains intact. All72 PR-path modes are preserved.
All13 affected registered runs pass: J613 mux ordering and five compiled runtime-negative controls, crossbar union and two controls, GEM close and three controls. Python syntax/whitespace pass, and strict checkpatch of the registry resolution is0 errors/warnings/checks. Published commit parents/tree were read back. No fresh full kernel/module-link, complete host-suite, QEMU or hardware result is claimed here.
Current-head host/DT/source/Rust/KUnit/ATC workflows are running. Earlier029 green checks and any029 hardware trials keep their original composition scope. Overall Changes Requested and existing normal/nomodeset, real monitor-session and shared-generation functional gates remain; no hardware/default/loader operation or merge was requested or performed.
Current head:
66cb91442afb6a43b184590dcda9ef51952dda8f, tree87c8e56e97dca2b5e37a6ef614ce9391889343ce. All eight current-head hosted checks passed; merge remains held for existing hardware/functional qualification.This is a normal maintenance merge of prior head
0299976bwithintegration/aurora@c638876f, retaining all contributor history. The only textual conflict wastools/asahi/run-host-tests.py: both parents' registrations are retained, including the dcpext26/J613 controls and main's GEM-close tests. All146 registry entries and their arguments/expectations are preserved without duplicate keys. The display sources merged cleanly; the earlier J613 arbiter/fallback source fix is unchanged.All13 affected registered runs pass: J613 mux ordering plus five runtime-negative controls, the crossbar union plus two controls, and GEM close plus three controls. C fixtures used GCC with their existing strict-warning/ASan/UBSan flags; the GEM fixture used rustc. Python syntax, whitespace and strict checkpatch of the registry resolution pass (0/0/0). Those local runs were targeted host coverage; no new local full kernel/module link or hardware result is claimed. Hosted results follow below.
Hosted host43500189407, DT43500189550, and source/Rust/KUnit/DWC3-ATC43500189491 all passed on exact
66cb9144: eight successful jobs. The host runner completed351/351 runs; DT built137 baseline and137 head DTBs with make return0,0 new warning lines and21 removed (399 baseline versus378 head), and passed its ADT coverage comparison. Existing warnings/coverage gaps are not claimed closed. Parent029's checks retain their old exact-head scope.Remaining hardware gates are unchanged: J613 normal/nomodeset boots, an actual empty-at-boot external-monitor hot-plug/display session, and the existing shared-generation/functional qualification. No active trial/build was interrupted or re-labelled for this merge; results from029 must state that source composition. Overall review holds remain. No machine access, loader/default or hardware change was requested.
Previous checkpoint and earlier source/validation history (historical heads)
Current head:
0299976b7311c3ec32b43960a67b55ae0ff74f8b. All eight current-head checks passed; merge remains held for hardware qualification.The branch retains the reviewed T6030/T8132/J613 crossbar union, V27 precedence, native26 forced link-down and H17P park/unpark pairing. The newest changes address the terminal display/PD paths:
9bf9edc3replaces fallible completion-property publication with allocation-free built-in handoff/fallback state, handles deliberately suppressed DRM, and provides bounded retries for missing modules/providers.0299976bfixes the real external-route topology: the profile marker is on internaldcp, while route@0/1 belong to siblingdcpext. Fallback now identifies the producer-selected compatibledcpext/dcpext0node directly, preserving mandatory PHY dependencies and unprofiled behavior.The updated production-boundary fixture models that sibling topology and distinguishes J613/J615 compatible strings. Both defects first failed as compiled runtime assertions against unchanged
9bf9edc3. On the fix, one positive run and all five registered runtime-negative controls pass under the real runner PASS/KILL rules, GCC 16.1.1,-Wall -Werrorand ASan/UBSan. The two new controls remove external-node recognition or board scoping. Mutex stubs check pairing, not real concurrency. Strict checkpatch for this commit reports zero errors, warnings and checks. The standalone fixture honors HOSTCC; local Clang 23 attempts timed out and are not claimed as passing. No warning or mutation-failure checks were disabled.The parent
9bf9edc3eight green checks, author-reported 27 applicable runs and five arm64 object compilations keep their original source scope. Fresh0299976bhosted checks all passed: host-tests, DT, source, rust-build, KUnit, and the three DWC3/ATC configurations (runs 43444890074, 43444889862 and 43444889850). This review performed no new kernel object/full module-link, QEMU or hardware run.Remaining merge gates: the owner's planned J613 normal and nomodeset boots, actual empty-at-boot external-monitor hot-plug/session evidence on the fixed source, and the existing shared-generation/functional qualification from review5866574552. The original terminal source findings are addressed; review5868763401's overall merge hold remains until validation completes. The owner agreed to build the trial from
0299976b, replacing the unbooted9bf9edc3plan.Earlier partial hardware evidence 6813796356 established provider acquisition on its diagnostic composition, with no monitor plugged on a fixed kernel. It does not qualify this head or an external display session. Retained-backing/AFK/EDID limits and unqualified audio/HDR/docks remain in their stated scope. No new machine access, unattended trial, recording, playback or loader/default operation was requested here.
Earlier maintainer checkpoint at 3522452 (historical source/check identities)
Current head:
3522452d7fee53efbb6ead2ed5e817bdf3f92eee. Merge held by review5868763401. Normal merge of precedingae224490with mainbf00add0. The crossbar conflict preserves all three admitted paths: T6030, main’s T8132 external DCPs, and the selected J613 native26 profile. V27 still dispatches to its existing helper first. Locking, route selection and native26’s forced link-down behavior are unchanged.A production-function regression covers those three paths, V27 precedence, unrelated-profile refusal, direct/fixed/tunnel routing, cached output changes and link errors. Controls dropping either native26 or T8132 admission compile and fail their runtime assertions. Main’s109 and all17 existing native runner registrations/controls retain their values/order; the new suite makes127 unique entries, with executable mode and control-failure detection preserved. The previous H17P-only park/unpark pairing and native26 retained-resume path remain unchanged.
The previously reviewed fixes remain:
52a178fbdefers J613/profile PD initialization before mux collection until coldplug publishes completion, including ordinary gate refusal.952c236arechecks native26 mode-catalogue admission under modeset locks, preserving lost-route release and classic reset/power-cycle paths.The ordinary synchronization path addresses the attended trace 6812350893: early PD lookup skipped an unavailable DCP route and retained a PHY-only handle. Re-probing after activation acquired both providers and restored display. The default-source diagnostic reproduced it under the newer Stage2/DTs, so newer integration/#974 are not necessary for that reproduction; earlier loader/DT probe-order effects remain unisolated.
Current source blockers:
nomodeset,appledrm_register()returns before coldplug. The new preflight still sees CONFIG_DRM_APPLE plus the profile and waits for a completion marker that will never be published, preventing PD initialization in the framebuffer fallback.No new blocker was found in the crossbar union or the previously reviewed retrain/sleep pairing. All18 native/PMP suites, six compiled runtime-negative controls and four shared-display ASan/UBSan units pass. The firmware27 selector/probe replay also passes its normal case and three compiled runtime controls:41/40/20 entries and0/0/21 required gaps;27.3 remains refused. Main’s intervening analytics-log change is retained. Independent source review found no new semantic objection. Route/MMIO/OF/DRM/scheduling boundaries remain mocked.
All eight current3522452 checks now pass: DT/bindings/ADT131550064923; Host131550064607; arm64 Rust SEP module131550071544; source131550066277; arm64 QEMU KUnit131550065920; three DWC3/ATC compile profiles131550066132/6205/6510. Their substantive build/test steps succeeded. Host reports317/317 passes, explicitly including the crossbar-union positive and both drop-native26/drop-t8132 runtime controls, the retained-suspend controls, mux-order control and retrain control. The wrapper’s earlier negative-control exit fix is accepted by the real hosted runner. Before logs remain retained.
CI completion does not resolve the two producer-side source findings or supply external monitor-session qualification. No source correction or new hardware result was posted; the current head is unchanged.
Hardware evidence — partial: author report 6813796356 records five fixed diagnostic boots. Both connectors collected the respective DCP mux in either probe order, without unbind/rebind; internal-panel readback, GPU rendering and cleanup passed. One RTC s2idle lasted60.1227s with IRQ93/counter+1 and cleared alarm. Stage2 was unchanged during those trials.
Booted composition
89fa138aused integrationf1b79c4b+ the fixes on olderb212a734+ #974c37f1fcb, with trial-only diagnostics. The report identifies NFC DT/include/secure-port-label differences from the refreshed publication; mux/gate/retrain code and J613 DTs match, but the published head itself was not separately booted. No monitor was plugged on a fixed kernel. Provider counts establish acquisition, not external link/session success or hardware qualification of retrain.Remaining merge gates: correct and cover the two terminal source paths, and provide the still-owed actual empty-at-boot monitor hot-plug/session result on the fixed published source. Current-head CI is complete; source corrections will need fresh checks. Review5866574552's functional/lab hold remains. No new machine access, unattended display test, media collection, loader/default change or playback is authorized by this update.
The earlier eight-epoch wedge was traced to the epoch-count cap; pre-exposure byte-budget admission and saturating accounting remain reviewed mitigations, not DMA-retirement proof. Finite retained-backing availability, AFK slot pressure, EDID/relink limits, and unqualified DP audio/HDR/docks remain documented. The prior post-PD-reprobe five modes/60.10s RTC results are workaround evidence, with all five retrain-EINVAL warnings retained. Earlier author history below keeps its original source/test scope.
GPT-6.1 Sol on @satchlj's behalf
November 10 follow-up: appended
f5bf834c94433092442cb7e00a21634db9f64498to the reviewed2f4924384b73head without rewriting its commits.The native26 path introduced an XR24-only primary while inheriting external HDR/BT.2020 properties and raw sink colour metadata. Those metadata properties predate the rebase. Raw external EDID publication also predates it (
d380f25c317df); reading the daily and PR-head source does not isolate a new raw-EDID publication toggle. The observed blank-versus-populated daily EDID remains a runtime/discovery difference, not a proven new compositor regression commit. This follow-up fixes the native26 capability mismatch at the path that limits scanout to RGB8.Withhold HDR_OUTPUT_METADATA and Colorspace on T8122 Type-C connectors. For native26, export an SDR EDID derivative with sink base identity, timing descriptors and CTA audio/video/speaker blocks. Omit chromaticities, colour-bearing vendor/extended blocks and unsupported extensions (including DisplayID), rather than exporting raw sink HDR/BT.2020 capabilities. This conservative allowlist can withhold extension-only information; it does not implement wide gamut or ten-bit output. The raw cache, firmware mode catalogue and attachment-generation checks remain in place.
Validation of the appended commit: all eleven native26 host suites pass, with ASan/UBSan EDID identity, audio, timing, colour removal, checksums, bounds and idempotence coverage. Both changed C translation units compile for arm64 on alba using Clang 23 and the retained LLVM18-build generated configuration. Each emits one existing dcp-announce/typecheck warning, reproduced on the unchanged parent. Checkpatch passes with only FILE_PATH_CHANGES ignored (the new header is within the existing Apple DRM ownership). Full kernel/module linkage and KUnit execution were attempted but remain pending the occupied shared VM builder lock; no new KUnit or full-kernel pass is claimed. A later rubra task must test the refined export, including EDID identity/audio, Dell 4K60/sRGB and hotplug/resume.
Follow-ups:
0eb573ccemodels the new allocation/DRM helper boundary in the two existing publication fixtures; all 88 existing DCP host cases pass on that tree in Linux.3f8f6bb9731acd62fee39526d1ec79708029c05fadditionally retains basic CTA audio when the data offset is legally zero; its EDID suite and both publication/dimension fixtures pass. The prior host CI failure was reproduced as new missing fixture helpers and fixed, not dismissed as baseline. The DT job also fails on duplicateapple,firmware-uuidkeys at lines 222/278 of apple,dcp.yaml; both are already present on the unchanged reviewed parent. That schema issue remains outstanding. Full module linkage/display KUnit and refined-fix hardware validation still remain outstanding.Historical series description and validation follow; their hardware disclaimer applies to that earlier validation date.
Stacked on #969 (port of omacom/linux-aurora#307); review that first.
Add the explicitly selected J613 native26 external-display path, checked surface encoding, native power suppliers and retained DPMS/s2idle backing. Preserve Aurora’s newer M4/desktop, compact-endpoint, blending and deferred-PMP behavior. Requires the separately supplied matching loader handoff; retained backing is bounded and uncertain sessions require reboot.
Port of omacom/linux-aurora#342. Depends on the port of omacom/linux-aurora#307; use the stack base above to review this layer. The original PR remains untouched.
Carried dependencies (original patch, complete message, authorship and dates preserved; 7.3 adaptations are separate commits):
e51f1082fa2384ef8e4d724dad52c9b317f6e45af192f61d8e864a57c40ee16c5bbae3f875c5823f60b3eae5bfa6b7d3d2666d8ca7a5c9dcc611f3f1e8023bba60e634b754f9d5cf8a31fe1856860486865371b461eccdbbee806b505f46bda16246daaee9d200311a5359dafc5391123e5ac297e5a4401080958cd5a4956cdb981acb5b18c64047548cba17f5af0ba04b7aa809ff54a8f092b08ba0scottjones chriskearney DjDeveloperr RyanTheTide
This carries Scott Jones's T8122 runtime and safety foundation from omacom/linux-aurora unaltered, because Aurora doesn't have it yet and this change builds on it. If you'd rather land it separately or differently, say so and I'll rework this.
This carries Chris Kearney's M3 native defaults and startup diagnostics from omacom/linux-aurora unaltered, because Aurora doesn't have it yet and this change builds on it. If you'd rather land it separately or differently, say so and I'll rework this.
This carries DjDeveloperr's M3 client parameter admission and timestamp adapter from omacom/linux-aurora unaltered, because Aurora doesn't have it yet and this change builds on it. If you'd rather land it separately or differently, say so and I'll rework this.
#783 held this foundation pending identity-selected constants and J613/J615 qualification. This port does not clear that hold.
Validation: arm64 defconfig + asahi.config, Image/modules/DTBs with BTF and KUnit enabled, LLVM 18/Rust 1.85.0, passed at stack top omacom/linux-aurora#342 (
7ab2586b6897), which includes this branch. The validated integration base is b500668. QEMU loaded the test-bearing modules successfully with no additional failures. The combined run retains four pre-existing SEP store failures (plus their suite aggregate), reproduced on the unmodified Aurora base. The unmodified pinned base also crashes in apple-av-audio-lifetime/av_lifetime_devres_order; that unrelated audio suite is explicitly excluded. All tests added by these ports run through KUnit debugfs on Cortex-A76. This is not a fully green or complete-tree KUnit run. All eleven native26 host suites passed. A classic display comparison reproduced nine baseline host failures; the one additional fast-replug failure was fixed and its targeted rerun passed. No 7.3 hardware boot or deployment has been performed.