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 added 6 commits July 19, 2026 21:00
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 a Devicetree property which represents a bitmask of the working
hardware planes (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 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>
@chadmed
chadmed force-pushed the dcp/surface-caps branch from cf65fe3 to 90860ad Compare July 19, 2026 11:00
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