arm64: dts: apple: Enable dp-altmode for M1 Pro/Max MacBook Pro#476
Open
IntrestingBeing wants to merge 3 commits intoAsahiLinux:fairydustfrom
Open
arm64: dts: apple: Enable dp-altmode for M1 Pro/Max MacBook Pro#476IntrestingBeing wants to merge 3 commits intoAsahiLinux:fairydustfrom
IntrestingBeing wants to merge 3 commits intoAsahiLinux:fairydustfrom
Conversation
Move ENABLE_DCPEXT_TYPEC from the shared t600x-j314-j316.dtsi into each individual machine DTS file (j314s, j316s, j314c, j316c), matching the pattern used by t6020-j474s for the Mac Mini M2 Pro. This enables USB-C DisplayPort alt-mode output on all MacBook Pro 14-inch and 16-inch 2021 models (M1 Pro and M1 Max). The blessed port is the left front USB-C port (typec1 / atcphy1). Tested on MacBook Pro 14-inch M1 Pro (t6000-j314s) with a Dell P2723DE monitor over a direct USB-C cable. Signed-off-by: Adi <39857031+IntrestingBeing@users.noreply.github.com>
Increase PIPEHANDLER_LOCK_ACK_TIMEOUT_US from 1ms to 100ms. The original 1ms timeout is sufficient for cold boot but too tight for USB-C DisplayPort hot-plug scenarios where the PHY state is partially initialized from a previous connection. The timeout is a maximum — readl_poll_timeout polls every 10us and returns immediately on success, so this does not add latency to the normal path. It only gives the hardware more time to respond when re-establishing a DP link after a cable replug. Without this change, hot-plugging a USB-C display reliably fails with "Pipehandler lock not acked" as the PHY cannot re-lock in time, causing the display link to drop seconds after being established. Signed-off-by: Adi <39857031+IntrestingBeing@users.noreply.github.com>
Move the dp-altmode blessed port from the left front USB-C (typec1 / atcphy1) to the right USB-C (typec2 / atcphy2). This frees up both left ports for charging and peripherals while dedicating the right port to display output. Rewires dcpext1 from atcphy1_xbar to atcphy2_xbar and moves the displayport property from the typec1 to typec2 connector. Signed-off-by: Adi <39857031+IntrestingBeing@users.noreply.github.com>
|
Can you explain what you are trying to achieve with this PR? |
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.

Summary
ENABLE_DCPEXT_TYPECfrom the shared dtsi into per-machine DTS files, matching the pattern used by the Mac Mini M2 Pro (t6020-j474s)Details
The fairydust branch already had the dp-altmode infrastructure in
t600x-j314-j316.dtsibehind#ifdef ENABLE_DCPEXT_TYPEC, but it was only enabled via a hardcoded#definein the shared dtsi. This moves the define into each machine DTS (j314s, j316s, j314c, j316c) for consistency with how t6020-j474s enables it.The blessed port is the left front USB-C (typec1 / atcphy1).
The pipehandler timeout increase (
PIPEHANDLER_LOCK_ACK_TIMEOUT_US1000 → 100000) fixes a hot-plug issue where re-plugging a USB-C display would fail with "Pipehandler lock not acked". The timeout is a maximum —readl_poll_timeoutpolls every 10μs and returns on success, so normal operations are unaffected.Test plan