summaryrefslogtreecommitdiffstats
path: root/bcm283x-drm-vc4-set-is_yuv-to-false-when-num_planes-1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bcm283x-drm-vc4-set-is_yuv-to-false-when-num_planes-1.patch')
-rw-r--r--bcm283x-drm-vc4-set-is_yuv-to-false-when-num_planes-1.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/bcm283x-drm-vc4-set-is_yuv-to-false-when-num_planes-1.patch b/bcm283x-drm-vc4-set-is_yuv-to-false-when-num_planes-1.patch
new file mode 100644
index 000000000..5aa9668bc
--- /dev/null
+++ b/bcm283x-drm-vc4-set-is_yuv-to-false-when-num_planes-1.patch
@@ -0,0 +1,40 @@
+From patchwork Tue Oct 9 13:24:46 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: drm/vc4: Set ->is_yuv to false when num_planes == 1
+From: Boris Brezillon <boris.brezillon@bootlin.com>
+X-Patchwork-Id: 255528
+Message-Id: <20181009132446.21960-1-boris.brezillon@bootlin.com>
+To: David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
+ dri-devel@lists.freedesktop.org, Eric Anholt <eric@anholt.net>
+Cc: Boris Brezillon <boris.brezillon@bootlin.com>, stable@vger.kernel.org
+Date: Tue, 9 Oct 2018 15:24:46 +0200
+
+When vc4_plane_state is duplicated ->is_yuv is left assigned to its
+previous value, and we never set it back to false when switching to
+a non-YUV format.
+
+Fix that by setting ->is_yuv to false in the 'num_planes == 1' branch
+of the vc4_plane_setup_clipping_and_scaling() function.
+
+Fixes: fc04023fafecf ("drm/vc4: Add support for YUV planes.")
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+---
+ drivers/gpu/drm/vc4/vc4_plane.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
+index d04b3c3246ba..60d5ad19cedd 100644
+--- a/drivers/gpu/drm/vc4/vc4_plane.c
++++ b/drivers/gpu/drm/vc4/vc4_plane.c
+@@ -321,6 +321,7 @@ static int vc4_plane_setup_clipping_and_scaling(struct drm_plane_state *state)
+ if (vc4_state->is_unity)
+ vc4_state->x_scaling[0] = VC4_SCALING_PPF;
+ } else {
++ vc4_state->is_yuv = false;
+ vc4_state->x_scaling[1] = VC4_SCALING_NONE;
+ vc4_state->y_scaling[1] = VC4_SCALING_NONE;
+ }