diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0937-drm-vc4-Set-the-possible-crtcs-mask-correctly-for-pl.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0937-drm-vc4-Set-the-possible-crtcs-mask-correctly-for-pl.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0937-drm-vc4-Set-the-possible-crtcs-mask-correctly-for-pl.patch b/target/linux/bcm27xx/patches-5.4/950-0937-drm-vc4-Set-the-possible-crtcs-mask-correctly-for-pl.patch new file mode 100644 index 0000000000..9f020f7a53 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-0937-drm-vc4-Set-the-possible-crtcs-mask-correctly-for-pl.patch @@ -0,0 +1,40 @@ +From 84a67330f3457469bc42f203111fc5ad800c506b Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <dave.stevenson@raspberrypi.com> +Date: Thu, 13 Aug 2020 18:29:56 +0100 +Subject: [PATCH] drm/vc4: Set the possible crtcs mask correctly for + planes with FKMS + +The driver was assigning all planes to crtcs when actually they're +mapped to a specific crtc. + +Correct the mask. + +https://github.com/raspberrypi/linux/issues/3734 + +Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> +--- + drivers/gpu/drm/vc4/vc4_firmware_kms.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +@@ -816,7 +816,7 @@ static struct drm_plane *vc4_fkms_plane_ + formats[num_formats++] = vc_image_formats[i].drm; + + plane = &vc4_plane->base; +- ret = drm_universal_plane_init(dev, plane, 0xff, ++ ret = drm_universal_plane_init(dev, plane, 0, + &vc4_plane_funcs, + formats, num_formats, modifiers, + type, NULL); +@@ -1785,6 +1785,10 @@ static int vc4_fkms_create_screen(struct + NULL); + drm_crtc_helper_add(crtc, &vc4_crtc_helper_funcs); + ++ /* Update the possible_crtcs mask for the overlay plane(s) */ ++ for (i = 1; i < (PLANES_PER_CRTC - 1); i++) ++ planes[i]->possible_crtcs = drm_crtc_mask(crtc); ++ + vc4_encoder = devm_kzalloc(dev, sizeof(*vc4_encoder), GFP_KERNEL); + if (!vc4_encoder) + return -ENOMEM; |