drm/vc4: Add FB modifier support to firmwarekms.
authorEric Anholt <eric@anholt.net>
Wed, 7 Jun 2017 21:39:49 +0000 (14:39 -0700)
committerRaspbian kernel package updater <root@raspbian.org>
Sun, 8 Oct 2017 01:08:13 +0000 (01:08 +0000)
Signed-off-by: Eric Anholt <eric@anholt.net>
drivers/gpu/drm/vc4/vc4_firmware_kms.c

index 943cbb38f1f2e6fc7c06870be7904677e0a9c7a3..40a0cdc179ceabafb387724e1b835895fa3e2ca2 100644 (file)
@@ -18,6 +18,7 @@
 #include "drm_atomic_helper.h"
 #include "drm_plane_helper.h"
 #include "drm_crtc_helper.h"
+#include "drm_fourcc.h"
 #include "linux/clk.h"
 #include "linux/debugfs.h"
 #include "drm_fb_cma_helper.h"
@@ -136,6 +137,10 @@ static void vc4_primary_plane_atomic_update(struct drm_plane *plane,
        fbinfo->yoffset = state->crtc_y;
        fbinfo->base = bo->paddr + fb->offsets[0];
        fbinfo->pitch = fb->pitches[0];
+
+       if (fb->modifier[0] == DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED)
+               fbinfo->bpp |= BIT(31);
+
        /* A bug in the firmware makes it so that if the fb->base is
         * set to nonzero, the configured pitch gets overwritten with
         * the previous pitch.  So, to get the configured pitch