bcm27xx: 6.1: add kernel patches
[openwrt/staging/nbd.git] / target / linux / bcm27xx / patches-6.1 / 950-0535-drm-vc4-hdmi-Correct-CSC-setup-for-YCbCr4-4-4.patch
1 From e872dd065cd2b55d9532213404dc70f351de0031 Mon Sep 17 00:00:00 2001
2 From: Dave Stevenson <dave.stevenson@raspberrypi.com>
3 Date: Mon, 14 Nov 2022 19:30:27 +0000
4 Subject: [PATCH] drm/vc4: hdmi: Correct CSC setup for YCbCr4:4:4
5
6 The CSC requires the coefficients to be swapped around for
7 4:4:4 mode, but the swap was incorrectly defined.
8
9 Correct the swap.
10
11 Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
12 ---
13 drivers/gpu/drm/vc4/vc4_hdmi.c | 12 ++++++------
14 1 file changed, 6 insertions(+), 6 deletions(-)
15
16 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
17 +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
18 @@ -1335,12 +1335,12 @@ static void vc5_hdmi_set_csc_coeffs_swap
19 lockdep_assert_held(&vc4_hdmi->hw_lock);
20
21 /* YUV444 needs the CSC matrices using the channels in a different order */
22 - HDMI_WRITE(HDMI_CSC_12_11, (coeffs[2][1] << 16) | coeffs[2][0]);
23 - HDMI_WRITE(HDMI_CSC_14_13, (coeffs[2][3] << 16) | coeffs[2][2]);
24 - HDMI_WRITE(HDMI_CSC_22_21, (coeffs[0][1] << 16) | coeffs[0][0]);
25 - HDMI_WRITE(HDMI_CSC_24_23, (coeffs[0][3] << 16) | coeffs[0][2]);
26 - HDMI_WRITE(HDMI_CSC_32_31, (coeffs[1][1] << 16) | coeffs[1][0]);
27 - HDMI_WRITE(HDMI_CSC_34_33, (coeffs[1][3] << 16) | coeffs[1][2]);
28 + HDMI_WRITE(HDMI_CSC_12_11, (coeffs[1][1] << 16) | coeffs[1][0]);
29 + HDMI_WRITE(HDMI_CSC_14_13, (coeffs[1][3] << 16) | coeffs[1][2]);
30 + HDMI_WRITE(HDMI_CSC_22_21, (coeffs[2][1] << 16) | coeffs[2][0]);
31 + HDMI_WRITE(HDMI_CSC_24_23, (coeffs[2][3] << 16) | coeffs[2][2]);
32 + HDMI_WRITE(HDMI_CSC_32_31, (coeffs[0][1] << 16) | coeffs[0][0]);
33 + HDMI_WRITE(HDMI_CSC_34_33, (coeffs[0][3] << 16) | coeffs[0][2]);
34 }
35
36 static void vc5_hdmi_csc_setup(struct vc4_hdmi *vc4_hdmi,