]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
drm/vc4: plane: Expand the lower bits by repeating the higher bits
authorMaxime Ripard <maxime.ripard@bootlin.com>
Thu, 17 May 2018 13:37:59 +0000 (15:37 +0200)
committerEric Anholt <eric@anholt.net>
Thu, 17 May 2018 14:22:43 +0000 (15:22 +0100)
The vc4 HVS uses an internal RGB888 representation of the frames, and will
by default expand formats using a lower depth using zeros.

This causes an issue when we try to use other compositing software such as
pixman that fill the missing bits by repeating the higher significant bits.
As such, we can't check the display output in a reliable way by doing a
software composition and an hardware one and compare both.

To prevent this, force the same behaviour so that we can do such things.

Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20180517133759.25626-1-maxime.ripard@bootlin.com
drivers/gpu/drm/vc4/vc4_plane.c

index 3483c05cc3d6d528f772f79b833db1bff30afa48..6e8984aee613fbd8984b81b4a3ecd8260414f1d0 100644 (file)
@@ -544,6 +544,7 @@ static int vc4_plane_mode_set(struct drm_plane *plane,
        /* Control word */
        vc4_dlist_write(vc4_state,
                        SCALER_CTL0_VALID |
+                       VC4_SET_FIELD(SCALER_CTL0_RGBA_EXPAND_ROUND, SCALER_CTL0_RGBA_EXPAND) |
                        (format->pixel_order << SCALER_CTL0_ORDER_SHIFT) |
                        (format->hvs << SCALER_CTL0_PIXEL_FORMAT_SHIFT) |
                        VC4_SET_FIELD(tiling, SCALER_CTL0_TILING) |