aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Stevenson <[email protected]>2024-06-21 16:20:39 +0100
committerDave Stevenson <[email protected]>2024-09-09 13:02:53 +0100
commit542962190e55be21fc600ffed47a50390b6101cc (patch)
tree28b4f2dee54ca21a0fb18ae60680c08af1843507
parent52efe364d1968ee3e3ed45eb44eb924b63635315 (diff)
drm/vc4: plane: YUV planes require vertical scaling to always be enabled
It has been observed that a YUV422 unity scaled plane isn't displayed. Enabling vertical scaling on the UV planes solves this. There is already a similar clause to always enable horizontal scaling on the UV planes. Reviewed-by: Maxime Ripard <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Signed-off-by: Dave Stevenson <[email protected]>
-rw-r--r--drivers/gpu/drm/vc4/vc4_plane.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
index d078a2d21eea..4cd1721d2389 100644
--- a/drivers/gpu/drm/vc4/vc4_plane.c
+++ b/drivers/gpu/drm/vc4/vc4_plane.c
@@ -517,6 +517,12 @@ static int vc4_plane_setup_clipping_and_scaling(struct drm_plane_state *state)
*/
if (vc4_state->x_scaling[1] == VC4_SCALING_NONE)
vc4_state->x_scaling[1] = VC4_SCALING_PPF;
+
+ /* Similarly UV needs vertical scaling to be enabled.
+ * Without this a 1:1 scaled YUV422 plane isn't rendered.
+ */
+ if (vc4_state->y_scaling[1] == VC4_SCALING_NONE)
+ vc4_state->y_scaling[1] = VC4_SCALING_PPF;
} else {
vc4_state->is_yuv = false;
vc4_state->x_scaling[1] = VC4_SCALING_NONE;