Skip to content

soc: apple: display-gate: Serve the M4 Max - #929

Closed
AxxzyWasTaken wants to merge 1 commit into
aurora-silicon:integration/aurorafrom
AxxzyWasTaken:t6041-display-gate
Closed

AxxzyWasTaken wants to merge 1 commit into
aurora-silicon:integration/aurorafrom
AxxzyWasTaken:t6041-display-gate

Conversation

@AxxzyWasTaken

Copy link
Copy Markdown
Contributor

display-gate.c enables the T6041 display nodes only on root compatible apple,t6040, the M4 Pro. The M4 Max (J616C, root apple,t6041) has the same display block at the same addresses, and aura#67 publishes the same apple,t6041-handoff for it. With no gate entry for that root, the handoff is ignored: the nodes stay disabled, appledrm has nothing to bind, the panel stays on simpledrm, and apple-mcc waits forever for /display-subsystem.

This adds an entry for apple,t6041 that shares gate_t6041_run(). Nothing changes on other machines, and without the marker the gate does nothing, as on the M4 Pro.

Testing (J616C, 14-core M4 Max, one-shot boot, no desktop session): this change on a 7.3 kernel with #914, #917, aura#67 and aura#68. The gate logs display handoff accepted and enables stages 0 and 1, apple-dcp binds, DRM initialises (Initialized apple 1.0.0, 3456x2234 at 120 Hz, fb0: appledrmfb), and apple-mcc stops deferring and enables the system level cache on 24 planes. Nothing is left in devices_deferred. Without this change, the same boot leaves all the display nodes disabled. Nobody logged in or ran a compositor on it, and external displays weren't tested. The gate also powers up the external display chain on this machine; on this boot the dcpext nodes came up as devices, but no external display was attached.

The build here is on our 7.3 trial branch, not on integration/aurora as such: the same hunks apply there, and this branch hasn't been built separately.

Needs #914 for the J616C device tree. This Mac is the only one tested.

The gate that enables the T6041 display nodes only runs on root compatible
apple,t6040, the M4 Pro. The M4 Max is apple,t6041, with the same display
block at the same addresses. aura publishes the handoff there too, but no
gate runs, so the nodes stay disabled and the panel stays on simpledrm.

Add a gate entry for apple,t6041 that shares the T6041 code. Without the
apple,t6041-handoff marker it does nothing, as before.

Signed-off-by: AxxzyWasTaken <axxzytte@gmail.com>
@RyanTheTide

Copy link
Copy Markdown
Contributor

Merge train (MTL, 06/11): this is superseded on integration/aurora. astaff's series already added a gate_t6041_max entry for root apple,t6041 in display-gate.c with its own gate_t6041_max_run() (no PMP on the M4 Max, external chains follow the boot loader's firmware memory), so this now conflicts. If the merged gate is missing something you need on your J616C, a small fix on top of it would be the way to go and I'll gate it.

@AxxzyWasTaken

Copy link
Copy Markdown
Contributor Author

Closing: superseded by the gate_t6041_max entry from astaff's series on integration/aurora. Thanks.

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