Display: no sun9i frontend driver, so the vendor's scaler path is unreachable #49
Labels
No labels
blocked-physical
cleanup
hardware
infra
kernel
P1-critical
P2-high
P3-normal
P4-later
reliability
security
upstream
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
tiagoagueda/a80#49
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
sun4i_frontend.ccarries compatibles for a10, a20, a23 and a33 and none forsun9i. The dtsi declares
fe0/fe1asallwinner,sun9i-a80-display-frontend, nothingbinds them,
backend->frontendstays an error pointer, andsun4i_backend_plane_uses_frontend()therefore always returns false.So every frame on this SoC goes down the direct backend-layer path. That works - there is a
picture - but it is not what the vendor does. The board's own
sys_config, recovered fromthe vendor LiveSuit image, says:
i.e. the HDMI framebuffer goes through the scaler,
DEFE1 -> DEU1 -> DEBE1.Consequences of not having it: no hardware scaling, no YUV planes through the frontend, and
no way to test that path at all.
Groundwork already done:
probe/fefix.cbrings DEFE1 up far enough to be routed into thebackend (
LAY_VDOEN/LAY_VDOSEL), including the FIR coefficient RAM, andprobe/deufix.cungates and configures the DEU. Neither produced a picture on its own, but both were written
while four other faults were still in the way and deserve retrying now.
Done when
sun4i_frontendbinds on sun9i, or it is established that the direct path issufficient and the DT nodes should go
The mirror has a concrete starting point for this, which changes it from "no driver exists" to
"the registers are documented".
A80/Memory mapplaces the frontend blocks explicitly:0x03000000 - 0x03000fff0x03120000 - 0x0313ffff0x03140000 - 0x0315ffffand - the useful part - it links them to the existing
A10/DE_FEregister guide rather thandescribing them separately. If the sun9i frontend really is the A10 DE_FE at a different base,
then this is a port of a documented block, not reverse engineering from scratch, and the existing
sun4i-drmfrontend code becomes the obvious reference.Worth verifying that equivalence first, on hardware, before writing anything: read a few
identifying registers at
0x03120000and compare against whatA10/DE_FEsays they should be.That is a cheap experiment with the
probe/module pattern already in use here, and it decideswhether this issue is "port an existing driver" or "start from the manual".
From a deep pass over the offline linux-sunxi.org mirror (
a80/linux-sunxi.org/wiki-backup, 4095 pages, snapshot 2026-08-29). linux-sunxi.org content is CC BY-SA; the pages named above are the attribution.