[RFC] How to add hardware rotation, scaling etc to a DRM/KMS driver
Daniel Palmer
daniel at 0x0f.com
Wed Jan 19 08:55:22 UTC 2022
Hi all,
I've copied and pasted my way to mostly working DRM/KMS driver for a
low cost ARM SoC (Sigmastar SSD202D). The hardware is 2D only.
One of the devices that uses this SoC has the screen upside down so it
needs the screen rotated.
The hardware doesn't have bits that change the scan out direction from
what I can tell (so it can't mirror/flip while feeding it to the
screen) but it does have a 2D blitter style block that can take a
framebuffer and flip/mirror/scale/convert the colour space into
another buffer.
My idea was to create a buffer for the rotated image when allocating
the framebuffer and trigger the hardware to do the conversion each
vblank or something.
While reading the discussion about maintaining fbdev I realised maybe
I should ask instead of wasting too much time on something that's
wrong.
I got the feeling that maybe I should just provide an interface to the
blitter from userspace and userspace should be doing the rotation. I'd
like to do it in the kernel so stuff like SDL1 apps just work but
maybe that isn't possible?
Cheers,
Daniel
More information about the dri-devel
mailing list