| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | From 427c7c3d63a165ae3d5da45cd2afbe68cb4a34a9 Mon Sep 17 00:00:00 2001 |
| 2 | From: Eric Anholt <eric@anholt.net> |
| 3 | Date: Wed, 7 Jun 2017 14:39:49 -0700 |
| 4 | Subject: [PATCH] drm/vc4: Add FB modifier support to firmwarekms. |
| 5 | |
| 6 | Signed-off-by: Eric Anholt <eric@anholt.net> |
| 7 | (cherry picked from commit 11752d73488e08aaeb65fe8289a9c016acde26c2) |
| 8 | --- |
| 9 | drivers/gpu/drm/vc4/vc4_firmware_kms.c | 5 +++++ |
| 10 | 1 file changed, 5 insertions(+) |
| 11 | |
| 12 | --- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c |
| 13 | +++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c |
| 14 | @@ -17,6 +17,7 @@ |
| 15 | #include "drm/drm_atomic_helper.h" |
| 16 | #include "drm/drm_plane_helper.h" |
| 17 | #include "drm/drm_crtc_helper.h" |
| 18 | +#include "drm/drm_fourcc.h" |
| 19 | #include "linux/clk.h" |
| 20 | #include "linux/debugfs.h" |
| 21 | #include "drm/drm_fb_cma_helper.h" |
| 22 | @@ -134,6 +135,10 @@ static void vc4_primary_plane_atomic_upd |
| 23 | fbinfo->yoffset = state->crtc_y; |
| 24 | fbinfo->base = bo->paddr + fb->offsets[0]; |
| 25 | fbinfo->pitch = fb->pitches[0]; |
| 26 | + |
| 27 | + if (fb->modifier == DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED) |
| 28 | + fbinfo->bpp |= BIT(31); |
| 29 | + |
| 30 | /* A bug in the firmware makes it so that if the fb->base is |
| 31 | * set to nonzero, the configured pitch gets overwritten with |
| 32 | * the previous pitch. So, to get the configured pitch |