Skip to content

Enable T6030 external display support - #607

Open
a-ramses wants to merge 19 commits into
AsahiLinux:asahi-wip-7.2from
a-ramses:test/t6030-external-edid
Open

Enable T6030 external display support#607
a-ramses wants to merge 19 commits into
AsahiLinux:asahi-wip-7.2from
a-ramses:test/t6030-external-edid

Conversation

@a-ramses

@a-ramses a-ramses commented Sep 8, 2026

Copy link
Copy Markdown

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.

Use the 32-bit size fields and return code in the 48-byte response header.
Pass the full response buffer length and reject errors and oversized replies.

Firmware 14.7 replies also carry the existing eight-byte EDID prefix.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Descend into tipd when its shared core is selected, including SPMI-only
configurations.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Initialize optional fields and discard data left in a mode slot after a
failed parse.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Dispatch get_tiling_state and set_tiling_state at callback indices 115
and 116.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
A zero completion result means timeout, not success. Return -ETIMEDOUT
in that case.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Return management-message send failures and stop AFK initialization when
starting its endpoint fails.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Set the receive FIFO enable bit on T6030 ASC mailboxes.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Start the debug endpoint and provide its requested shared buffers. Free
them on reset and teardown.

Signed-off-by: Ramzi Abdiche <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: Ramzi Abdiche <abdicheramzi@gmail.com>
Track HPD changes and notify the referenced DRM connector around Type-C
mode updates.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Exclude T8122-compatible PHY endpoints from DCP component matching, as
already done for T8103.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Poll between short completion waits to recover messages when interrupt
delivery stalls.

Signed-off-by: Ramzi Abdiche <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: Ramzi Abdiche <abdicheramzi@gmail.com>
Delay initialization after endpoint startup and poll for its reply.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Return the read error instead of masking it as ENODEV.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Describe display controllers, DARTs, mailboxes and crossbars, including
the DMA window and power settings.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Add the panel properties, framebuffer links and display aliases.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
Enable dcpext1 and route it through ATC0 to USB-C.
Enable synchronous firmware acknowledgements and keep ATC0 powered.

Signed-off-by: Ramzi Abdiche <abdicheramzi@gmail.com>
@a-ramses
a-ramses force-pushed the test/t6030-external-edid branch from d81f6c0 to 546038d Compare September 8, 2026 21:02
@sofus13 sofus13 mentioned this pull request Sep 9, 2026
Comment thread drivers/gpu/drm/apple/epic/dpavservep.c Outdated
u8 _pad1[24];
__le64 used_size;
u8 _pad2[8];
struct dpavserv_copy_edid_msg {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason to churn the name of the struct?

Comment thread drivers/gpu/drm/apple/epic/dpavservep.c Outdated
u8 _pad3[12];
u8 data[];
} __packed;
static_assert(sizeof(struct dpavserv_copy_edid_msg) == 48);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is unnecessary

Comment thread drivers/gpu/drm/apple/epic/dpavservep.c Outdated
static_assert(sizeof(struct dpavserv_copy_edid_msg) == 48);

#define EDID_LEADING_DATA_SIZE 8
#define EDID_LEGACY_LEADING_DATA_SIZE 8

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Firmware 14.7 also uses the eight-byte prefix, so I restored the existing handling and removed selection at runtime

mbox-names = "mbox";
iommus = <&dcp_dart 5 0x100 0x0 0x10 0x0>;

reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does it work with 4? dcpep_cb_map_reg failed for me until i added a fifth

@sofus13

sofus13 commented Sep 9, 2026

Copy link
Copy Markdown

Would it make sense if i took the dcp related dt changes and added them to my pr?

@alyssarosenzweig

alyssarosenzweig commented Sep 9, 2026

Copy link
Copy Markdown
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?)

https://docs.kernel.org/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin

@a-ramses
a-ramses force-pushed the test/t6030-external-edid branch from 546038d to d8a6a93 Compare September 9, 2026 21:57
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.

4 participants