Skip to content

dcp: Corrent scanout surface handling on all SoCs - #520

Open
chadmed wants to merge 6 commits into
AsahiLinux:asahi-wipfrom
chadmed:dcp/surface-caps
Open

dcp: Corrent scanout surface handling on all SoCs#520
chadmed wants to merge 6 commits into
AsahiLinux:asahi-wipfrom
chadmed:dcp/surface-caps

Conversation

@chadmed

@chadmed chadmed commented Jun 19, 2026

Copy link
Copy Markdown
Member

Take two of a mechanism by which each DCP can safely expose all of its scanout surfaces for compositors/clients to do with as they please.

Tested on t6000, t6021, t8112, t8103.

@chadmed
chadmed requested a review from jannau June 19, 2026 10:41
@chadmed
chadmed force-pushed the dcp/surface-caps branch from cf65fe3 to 90860ad Compare July 19, 2026 11:00
@chadmed
chadmed force-pushed the dcp/surface-caps branch 2 times, most recently from 661c2ae to ed710d3 Compare July 27, 2026 10:37
chadmed added 6 commits August 1, 2026 11:29
DCP is an interesting little bit of hardware. Each variant has quite
different scanout capabilities, including which hardware planes are
actually present. The firmware interface will always accept four
IOSurface structs, however the hardware will fail in weird and
wonderful ways if the firmware then tries to program the corresponding
scanout planes when they do not actually work. We need a way to
declare to KMS which hardware planes actually work on which SoCs.

Add an array to the Devicetree node representing the working hardware
surfaces (relative to the four possible IOSurfaces), and use this to
decide which KMS planes get created at driver init. Since we now
guarantee that every instantiated DRM plane corresponds to a valid
hardware surface, we can remove some superfluous sanity checks in
crtc_atomic_check too.

Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
All T602x DCPs support simultaneous scanout on surfaces 0, 1, and 3.

Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
All T600x DCPs support simultaneous scanout on surfaces 0 and 1.

Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
All T8103 DCPs support simultaneous scanout on surfaces 0 and 1.

Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
All T8112 DCPs support simultaneous scanout on surfaces 0, 1, and 3.

Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
Now that we can safely declare the working hardware surfaces on
each SoC, let the driver test all possible positions for a working
surface.

Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
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.

1 participant