Skip to content

drm/apple: Add T6050 firmware-27 display support - #485

Closed
DjDeveloperr wants to merge 1 commit into
t6050/basefrom
t6050/dcp
Closed

DjDeveloperr wants to merge 1 commit into
t6050/basefrom
t6050/dcp

Conversation

@DjDeveloperr

Copy link
Copy Markdown
Contributor

Add T6050 firmware-27 display support, serialized IOMFB commands, paired scanout, register/clock metadata, and DisplayPort callbacks. Reuse the current AFK v2 codec, port the T6050 mapped callback-buffer behavior, and preserve the newer display-fabric and atomic-commit interfaces. This combines the old AFK and DCP PRs because the common framing implementation already exists in integration.

Targets the shared base: #472. This is a sibling PR, not a chain of previous feature commits.

Dependencies for the composed platform: #480.

Replaces #253, #254.

Validation of the complete series: ARM64 Image built and linked with Clang/Rust; 25 APIF host-test programs passed; all 20 changed binding schemas passed dt-doc-validate; whitespace checks passed. The split branch trees were checked to compose exactly to the tested tree. Hardware testing of this rebased combination remains pending.

Source snapshot: private linux-aurora:t6050-gpu at ee68abb105200e99636a5edfc647a5cfc1d89954. Integration baseline: Linux 7.3.0, 9cbdd0734d9e186c5f5f5949a21b909d10c2571b. This series refreshes the non-GPU platform changes; it does not include the private GPU backend.

Add T6050 firmware-27 display support, serialized IOMFB commands, paired scanout, register/clock metadata, and DisplayPort callbacks. Reuse the current AFK v2 codec, port the T6050 mapped callback-buffer behavior, and preserve the newer display-fabric and atomic-commit interfaces. This combines the old AFK and DCP PRs because the common framing implementation already exists in integration.

Source snapshot: t6050-gpu ee68abb105200e99636a5edfc647a5cfc1d89954
Integration base: 9cbdd07

Signed-off-by: Dj <43033058+DjDeveloperr@users.noreply.github.com>
fbalazsy added a commit to fbalazsy/linux that referenced this pull request Oct 27, 2026
…pipes

One DISPEXT pipe of the desktop 26.6 firmware drives modes up to 6720 px
wide ("IOMFB removing mode: 7680 x 2160, max width: 6720"); a 7680x2160
sink lost its native mode. The firmware supports a two-pipe display: the
primary pipe and a peer merge their frame timing generators and each
encodes half of the line, as the T6050 firmware-27 peer (aurora-silicon#485) does.

The primary answers the display allocation in SET_TILED_DISPLAY_HINTS
with its own and the peer's endpoint IDs when the sink is wider than one
pipe and an idle pipe above it exists (apple,dcp-endpoint; the pipes
merge upwards only: dcpext0 is the primary, dcpext1 its peer; its sinkless
HDMI link does not make dcpext0 busy, that link is released before the
pair comes up). With the pair reserved the hotplug record is echoed as
on firmware 27, so both pipes know each other's display ID.

A DRM mode set wider than one pipe then runs the merge on both pipes:
the primary's video data (A364) is split into a half-width derived mode
inserted on both (A365, A366), both pipes are powered as a pair (A473),
their master swap IDs aligned (A360/A361), and the paired mode set
(A413) run with the tiling rendezvous the firmware drives through D115
(read) and D116 (write): membership, phase, display IDs, offsets; the
DSC capabilities, bits per pixel and slice hints are copied from the
primary to the peer in between (A367..A373). The same mode set again
keeps the pair (DRM repeats it right after the connector came up, and
the merged pipe no longer resolves the original timing).

Each frame is the primary's swap: its left tile stays in the swap, the
right tile goes to the peer as its own swap_start/swap_submit chain with
the primary's swap ID (the firmware does not use the IOMFB transaction
queue on this firmware); the peer's completion is not a DRM event. A
merged pair is stopped as a pair before the primary's power-off or sleep:
the single-pipe power-off of a merged primary timed out and the peer's
firmware looped.

Adaptive sync follows the CRTC on the pair: IOMFBParameter 14 goes to
both pipes with the same minimum rate before the paired mode set. A pipe
keeps the parameter across a replug, so a peer that last ran a VRR mode
alone merged with VRR on while the primary ran without it, and its
firmware crashed. A changed rate (VRR switched on or off) stops the pair
and installs it again, as the mode set applies it on one pipe.
@RyanTheTide
RyanTheTide deleted the branch t6050/base October 29, 2026 01:37
@RyanTheTide RyanTheTide reopened this Oct 29, 2026
@DjDeveloperr DjDeveloperr mentioned this pull request Nov 9, 2026
@DjDeveloperr

Copy link
Copy Markdown
Contributor Author

Closing as superseded: the T6050 (M5 Pro) platform support landed through #1012, merged into integration/aurora. Closed at the owner's request.

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