Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions drivers/soc/apple/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ config APPLE_DISPLAY_GATE
not come up, also keeps the GPU off for that boot. It is not a
display-only switch.

On T6041 (M4 Pro) device trees it enables the internal display nodes
On T6041 (M4 Pro and M4 Max) device trees it enables the internal display nodes
only when the boot loader has handed the running display coprocessor
over (apple,t6041-handoff, 26.6.2 display firmware), and powers up
the J616s external display chain (HDMI, Type-C DisplayPort) once the
Expand All @@ -296,7 +296,7 @@ config APPLE_DISPLAY_GATE
meanwhile, and take the display routes once the chain is up.

Say 'y' if you want the native display on M3 Pro, M3 Max, M3 and
M4 Pro Macs.
M4 Pro and M4 Max Macs.

config APPLE_T6030_GPU_PMP_LINK
bool
Expand Down
15 changes: 14 additions & 1 deletion drivers/soc/apple/display-gate.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@
* T6031 boot the gate also logs what the boot loader handed over, so that
* a boot without the option already records what the next one needs.
*
* On T6041 (the display coprocessor of the M4 Pro, apple,t6040) m1n1 hands
* On T6041 (the display coprocessor of the M4 Pro, apple,t6040, and of the
* M4 Max, apple,t6041) m1n1 hands
* over the DCP that iBoot leaves running. It marks the DCP, the display
* subsystem and the DCP's piodma child with apple,t6041-handoff and names
* the display firmware in apple,firmware-compat. There is no PMP to add or
Expand Down Expand Up @@ -327,11 +328,23 @@ static const struct gate_soc gate_t6041 __initconst = {
.run = gate_t6041_run,
};

/* The same display block on the M4 Max: root compatible apple,t6041. */
static const struct gate_soc gate_t6041_max __initconst = {
.machine = "apple,t6041",
.prefix = "apple-t6041-display: ",
.name = "T6041",
.dcp_compat = "apple,t6041-dcp",
.display_compat = "apple,display-subsystem",
.marker = "apple,t6041-handoff",
.run = gate_t6041_run,
};

static const struct gate_soc *const gate_socs[] __initconst = {
&gate_t6030,
&gate_t8122,
&gate_t6031,
&gate_t6041,
&gate_t6041_max,
};

/* The SoC this boot runs on, if the gate serves it. */
Expand Down