Enable T6030 external display support - #607
Open
a-ramses wants to merge 20 commits into
Open
Conversation
DCP firmware 14.7 returns raw EDID bytes without the eight-byte prefix used by older firmware. It also uses the generic 48-byte variable-data message header with 32-bit maximum size, return code, and used size fields. Describe that message layout accurately, check its return code and bounds, and retain the legacy prefix for older firmware. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Descend into tipd when its shared core is selected, including SPMI-only configurations. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Initialize optional fields and discard data left in a mode slot after a failed parse. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Dispatch get_tiling_state and set_tiling_state at callback indices 115 and 116. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Accept raw and eight-byte-prefixed replies without assuming framing from the firmware version. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
A zero completion result means timeout, not success. Return -ETIMEDOUT in that case. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Return management-message send failures and stop AFK initialization when starting its endpoint fails. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Set the receive FIFO enable bit on T6030 ASC mailboxes. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Start the debug endpoint and provide its requested shared buffers. Free them on reset and teardown. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Add separate AUX and HBR3 lane operations for T6030 using the existing hardware dispatch. Derive active lanes from mode and orientation, stopping before orientation changes. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Track HPD changes and notify the referenced DRM connector around Type-C mode updates. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Exclude T8122-compatible PHY endpoints from DCP component matching, as already done for T8103. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Poll between short completion waits to recover messages when interrupt delivery stalls. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Add an opt-in immediate acknowledgement path for syslog and IOReport messages. Reply before dispatching later messages, skipping normal processing of these log entries. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Delay initialization after endpoint startup and poll for its reply. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Return the read error instead of masking it as ENODEV. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Describe display controllers, DARTs, mailboxes and crossbars, including the DMA window and power settings. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Add the panel properties, framebuffer links and display aliases. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
Enable dcpext1 and route it through ATC0 to USB-C. Enable synchronous firmware acknowledgements and keep ATC0 powered. Signed-off-by: a-ramses <abdicheramzi@gmail.com>
a-ramses
force-pushed
the
test/t6030-external-edid
branch
from
September 8, 2026 21:02
d81f6c0 to
546038d
Compare
chadmed
requested changes
Sep 9, 2026
| u8 _pad1[24]; | ||
| __le64 used_size; | ||
| u8 _pad2[8]; | ||
| struct dpavserv_copy_edid_msg { |
Member
There was a problem hiding this comment.
Is there a reason to churn the name of the struct?
| u8 _pad3[12]; | ||
| u8 data[]; | ||
| } __packed; | ||
| static_assert(sizeof(struct dpavserv_copy_edid_msg) == 48); |
| static_assert(sizeof(struct dpavserv_copy_edid_msg) == 48); | ||
|
|
||
| #define EDID_LEADING_DATA_SIZE 8 | ||
| #define EDID_LEGACY_LEADING_DATA_SIZE 8 |
Member
There was a problem hiding this comment.
Can we use the firmware versioning preprocessor helpers to make this cleaner inside the functions?
#if DCP_FW_VER >= DCP_FW_VERSION(14, 7, 0)
#define EDID_LEADING_DATA_SIZE 0
#else
#define EDID_LEADING_DATA_SIZE 8
#endif /* DCP_FW_VER */We can then just get rid of the leading_data_size variable and runtime evaluation.
sofus13
reviewed
Sep 9, 2026
| mbox-names = "mbox"; | ||
| iommus = <&dcp_dart 5 0x100 0x0 0x10 0x0>; | ||
|
|
||
| reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3"; |
There was a problem hiding this comment.
does it work with 4? dcpep_cb_map_reg failed for me until i added a fifth
|
Would it make sense if i took the dcp related dt changes and added them to my pr? |
Member
|
Please provide sign offs under your known identity (I see a real name on your GitHub so I don't think it's meant to be anonymous?) |
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.
Add T6030 DisplayPort PHY support and device-tree wiring, with DCP and RTKit fixes. USB-C display output and EDID retrieval are tested. HDMI output works with a forced mode; HDMI EDID parsing remains unresolved.