drm/meson: Add primary plane scaling
authorNeil Armstrong <narmstrong@baylibre.com>
Tue, 6 Nov 2018 09:40:02 +0000 (10:40 +0100)
committerNeil Armstrong <narmstrong@baylibre.com>
Tue, 13 Nov 2018 12:27:51 +0000 (13:27 +0100)
commit7db647aa8b134059c3b8f26b1dd2e1aa5b91e2ca
tree89be989e98c21e23e39cafe0e68c352c3b4a040b
parent20d7fe034a2fda304dd9a8d2eb876f0fcaaef928
drm/meson: Add primary plane scaling

This patch adds support for the Primary Plane scaling.

On the Amlogic GX SoCs, the primary plane is used as On-Screen-Display
layer on top of video, and it's needed to keep the OSD layer to a lower
size as the physical display size to :
- lower the memory bandwidth
- lower the OSD rendering
- lower the memory usage

This use-case is used when setting the display mode to 3840x2160 and the
OSD layer is rendered using the GPU. In this case, the GXBB & GXL cannot
work on more than 2000x2000 buffer, thus needing the OSD layer to be kept
at 1920x1080 and upscaled to 3840x2160 in hardware.

The primary plane atomic check still allow 1:1 scaling, allowing native
3840x2160 if needed by user-space applications.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
[narmstrong: fixed apply from malformed patch]
Link: https://patchwork.freedesktop.org/patch/msgid/1541497202-20570-4-git-send-email-narmstrong@baylibre.com
drivers/gpu/drm/meson/meson_plane.c