a45393673ab6f9abfdd83bd6e8378cddee5e4db3
[openwrt/staging/linusw.git] /
1 From a3fe2fa1ae15108705c5b56f4191414d6dc56188 Mon Sep 17 00:00:00 2001
2 From: Dave Stevenson <dave.stevenson@raspberrypi.com>
3 Date: Wed, 23 Aug 2023 17:48:23 +0100
4 Subject: [PATCH 0596/1085] drm/vc4: UV planes vertical scaling must always be
5 enabled
6
7 It has been observed that a YUV422 unity scaled plane isn't displayed.
8 Enabling vertical scaling on the UV planes solves this. There is
9 already a similar clause to always enable horizontal scaling on the
10 UV planes.
11
12 Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
13 ---
14 drivers/gpu/drm/vc4/vc4_plane.c | 6 ++++++
15 1 file changed, 6 insertions(+)
16
17 --- a/drivers/gpu/drm/vc4/vc4_plane.c
18 +++ b/drivers/gpu/drm/vc4/vc4_plane.c
19 @@ -522,6 +522,12 @@ static int vc4_plane_setup_clipping_and_
20 */
21 if (vc4_state->x_scaling[1] == VC4_SCALING_NONE)
22 vc4_state->x_scaling[1] = VC4_SCALING_PPF;
23 +
24 + /* Similarly UV needs vertical scaling to be enabled.
25 + * Without this a 1:1 scaled YUV422 plane isn't rendered.
26 + */
27 + if (vc4_state->y_scaling[1] == VC4_SCALING_NONE)
28 + vc4_state->y_scaling[1] = VC4_SCALING_PPF;
29 } else {
30 vc4_state->is_yuv = false;
31 vc4_state->x_scaling[1] = VC4_SCALING_NONE;