Repository navigation
Conversation
T6050's external display processors run DCP firmware 27, which avep_init()
refused ("Audio not supported for firmware"), so neither the HDMI port nor
DisplayPort on USB-C had any audio on the M5 Max Studio.
Firmware 27 publishes the audio interface (DCPAVAudioInterface,
dcpav-audio-interface-epic) on endpoint 0x2b, not 0x29: in the J775c
IORegistry (macOS 27, a DELL S2725QS on dcpext0) it sits on RTBuddy
Endpoint12, Endpoint13 being the dcpdptx-port-epic that Linux already
talks to on 0x2c; firmware 27's 0x29 is dcpav-device-epic and 0x2a
dcpav-service-epic. Its EP client is the link-data one of the T6030 14.7
external role: the firmware's method names run PrepareLinkWithData,
StartLinkWithData, DidStartLinkWithData, WillStopLinkWithData,
StopLinkWithData, CompleteLinkWithData, GetLinkData, GetLinkStatus,
GetTransport, GetPortID, CopyElements, CopyChannelLayoutElements,
CopyProductAttributes, the 13.5/14.7 numbering (prepare 6 ... complete
11, elements 16, product attributes 18), and macOS logs a StartLink with
32-byte link data (LinearPCM, 2 channels, 24 bit, 48 kHz) on it.
So drive firmware 27 as the 14.7 external role: the native link
lifecycle, the 32-byte link data and the large element catalog, the
Terminate report, open and close around the PCM. The interface is
published only for a sink the firmware drives, so no power check is
added for it. Its Open reply is not known to carry the "opened" Boolean
where 14.7's does; only its status decides there.
Look the AV endpoint up by its own number, and start it, and the sound
card on top of it, on firmware 27 without the hdmi_audio opt-in: a DCP
whose port@0 links no DisplayPort audio interface in the DT starts
nothing, so the DT is the opt-in there. All of it needs
CONFIG_DRM_APPLE_DCP_T6030_AUDIO, which builds the link-data protocol;
without it firmware 27 is refused as before.
Signed-off-by: Satya Benson <satya@benson.earth>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adapted from 9d375903520c2148d1df0df38560a696df7da5f8: retain integration's
compact desktop protocol, dynamic endpoint routing, native-link lifecycle
and default-on audio policy. Only extend the native-role and firmware gates,
select endpoint 0x2b, and accept firmware 27 Open without the 14.7 Boolean.
No device-tree change is needed on aurora-silicon#1619.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GPT-6.1 Sol on @satchlj's behalf
Draft until @satchlj confirms audible output on Friday 2026-11-13. Audible output is unconfirmed; the results below establish HDMI transport only.
The commit was tested on top of #1618 and #1619. Those PRs are needed for booting J775c, but this PR does not depend on them for building. This branch carries only this one commit on current integration/aurora (87476b9). Both touched files, drivers/gpu/drm/apple/av.c and drivers/gpu/drm/apple/dcp-internal.h, are byte-identical to tested head 17dc44911c4479b1b1f2fbff2dea9849adddcd7d (git diff against that head is empty for both paths). The cherry-pick applied without conflict; author, author date, commit message and trailers are preserved. The rebased branch has not been boot-tested.
T6050 external DCPs select firmware profile 27.0, but avep_init() falls through to -ENODEV, so HDMI's PCM DMA can run while no AV audio interface starts. Admit that profile with the v13_5 command numbering, route its AV interface through endpoint 0x2b, and select the existing native link-data lifecycle. Accept Open's successful status without requiring firmware14.7's opened Boolean at +16.
Adapted from Satya Benson's local 9d375903520c2148d1df0df38560a696df7da5f8, preserving authorship and original trailers. Integration already supplies dynamic endpoint routing, default-on audio, native link lifecycle and desktop compact handling; retain those implementations. #1619 already describes the J775c ADMAC/isoc-DART/audio graph, so this adds no DT changes. Jeff's #1012 and Erik's #1268/#1270/#1271 cover M5 display/tunnels; no overlapping firmware27 AV audio PR was found in the read-only search.
Tested natively on J775c M5 Max Mac Studio, existing stub firmware27.0 and installed loader, one-shot only with arm64.nomte:
Not tested: audible output, HDMI cable replug, USB-C DisplayPort audio (all four DP connectors disconnected), other firmware versions or machines, suspend/resume, or the latest moving integration head. Fresh integration 87476b9 has unchanged av.c/dcp-internal.h relative to the tested base, but was not the boot-tested base. Known inherited AOP -61, firmware display diagnostics and build warnings remain.
Checks on this single-commit branch: git diff --check passes. Full-commit checkpatch reports 0 errors and 2 warnings, both about the preserved original Co-Authored-By capitalization (non-standard signature / preferred Co-authored-by form). Diff-only checkpatch reports 0 errors/0 warnings. No fresh object compile was run: neo-build was idle, but this checkout was not accessible in its mounted source export and had no prepared build tree. Compile and KUnit evidence above is from the tested tree, not a new build of current integration.
Local evidence retained by @satchlj: work/UPSTREAM-HDMI-AUDIO-20261112.md and work/upstream-hdmi-audio-20261112/.