diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0533-vc4-kms-vc4_plane-Support-2020-colourspace-for-yuv-p.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0533-vc4-kms-vc4_plane-Support-2020-colourspace-for-yuv-p.patch | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0533-vc4-kms-vc4_plane-Support-2020-colourspace-for-yuv-p.patch b/target/linux/bcm27xx/patches-5.10/950-0533-vc4-kms-vc4_plane-Support-2020-colourspace-for-yuv-p.patch new file mode 100644 index 0000000000..85bccb24be --- /dev/null +++ b/target/linux/bcm27xx/patches-5.10/950-0533-vc4-kms-vc4_plane-Support-2020-colourspace-for-yuv-p.patch @@ -0,0 +1,105 @@ +From f5c7dd20b383a4ab8212736b37940a4339d80e33 Mon Sep 17 00:00:00 2001 +From: Dom Cobley <popcornmix@gmail.com> +Date: Mon, 12 Apr 2021 17:27:43 +0100 +Subject: [PATCH] vc4/kms: vc4_plane: Support 2020 colourspace for yuv + planes + +https://gist.github.com/popcornmix/6b3e23103c60170b02b148e0ba5d6ed7 + +is the script used to generate the 601, 709 and 2020 colourspaces. +I've regenetated the existing ones using script so it is reprocable +but there are lsb dfferences compared to values here (copied from spec) +whose origin is now lost. + +Signed-off-by: Dom Cobley <popcornmix@gmail.com> +--- + drivers/gpu/drm/vc4/vc4_plane.c | 19 ++++++++++--------- + drivers/gpu/drm/vc4/vc4_regs.h | 18 ++++++++++++------ + 2 files changed, 22 insertions(+), 15 deletions(-) + +--- a/drivers/gpu/drm/vc4/vc4_plane.c ++++ b/drivers/gpu/drm/vc4/vc4_plane.c +@@ -644,10 +644,10 @@ static const u32 colorspace_coeffs[2][DR + SCALER_CSC1_ITR_R_709_3, + SCALER_CSC2_ITR_R_709_3, + }, { +- /* BT2020. Not supported yet - copy 601 */ +- SCALER_CSC0_ITR_R_601_5, +- SCALER_CSC1_ITR_R_601_5, +- SCALER_CSC2_ITR_R_601_5, ++ /* BT2020 */ ++ SCALER_CSC0_ITR_R_2020, ++ SCALER_CSC1_ITR_R_2020, ++ SCALER_CSC2_ITR_R_2020, + } + }, { + /* Full range */ +@@ -662,10 +662,10 @@ static const u32 colorspace_coeffs[2][DR + SCALER_CSC1_ITR_R_709_3_FR, + SCALER_CSC2_ITR_R_709_3_FR, + }, { +- /* BT2020. Not supported yet - copy JFIF */ +- SCALER_CSC0_JPEG_JFIF, +- SCALER_CSC1_JPEG_JFIF, +- SCALER_CSC2_JPEG_JFIF, ++ /* BT2020 */ ++ SCALER_CSC0_ITR_R_2020_FR, ++ SCALER_CSC1_ITR_R_2020_FR, ++ SCALER_CSC2_ITR_R_2020_FR, + } + } + }; +@@ -1487,7 +1487,8 @@ struct drm_plane *vc4_plane_init(struct + + drm_plane_create_color_properties(plane, + BIT(DRM_COLOR_YCBCR_BT601) | +- BIT(DRM_COLOR_YCBCR_BT709), ++ BIT(DRM_COLOR_YCBCR_BT709) | ++ BIT(DRM_COLOR_YCBCR_BT2020), + BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) | + BIT(DRM_COLOR_YCBCR_FULL_RANGE), + DRM_COLOR_YCBCR_BT709, +--- a/drivers/gpu/drm/vc4/vc4_regs.h ++++ b/drivers/gpu/drm/vc4/vc4_regs.h +@@ -975,8 +975,10 @@ enum hvs_pixel_format { + #define SCALER_CSC0_COEF_CR_OFS_SHIFT 0 + #define SCALER_CSC0_ITR_R_601_5 0x00f00000 + #define SCALER_CSC0_ITR_R_709_3 0x00f00000 ++#define SCALER_CSC0_ITR_R_2020 0x00f00000 + #define SCALER_CSC0_JPEG_JFIF 0x00000000 + #define SCALER_CSC0_ITR_R_709_3_FR 0x00000000 ++#define SCALER_CSC0_ITR_R_2020_FR 0x00000000 + + /* S2.8 contribution of Cb to Green */ + #define SCALER_CSC1_COEF_CB_GRN_MASK VC4_MASK(31, 22) +@@ -991,9 +993,11 @@ enum hvs_pixel_format { + #define SCALER_CSC1_COEF_CR_BLU_MASK VC4_MASK(1, 0) + #define SCALER_CSC1_COEF_CR_BLU_SHIFT 0 + #define SCALER_CSC1_ITR_R_601_5 0xe73304a8 +-#define SCALER_CSC1_ITR_R_709_3 0xf2b784a8 +-#define SCALER_CSC1_JPEG_JFIF 0xea34a400 +-#define SCALER_CSC1_ITR_R_709_3_FR 0xe23d0400 ++#define SCALER_CSC1_ITR_R_709_3 0xf27784a8 ++#define SCALER_CSC1_ITR_R_2020 0xf43594a8 ++#define SCALER_CSC1_JPEG_JFIF 0xea349400 ++#define SCALER_CSC1_ITR_R_709_3_FR 0xf4388400 ++#define SCALER_CSC1_ITR_R_2020_FR 0xf5b6d400 + + /* S2.8 contribution of Cb to Red */ + #define SCALER_CSC2_COEF_CB_RED_MASK VC4_MASK(29, 20) +@@ -1004,10 +1008,12 @@ enum hvs_pixel_format { + /* S2.8 contribution of Cb to Blue */ + #define SCALER_CSC2_COEF_CB_BLU_MASK VC4_MASK(19, 10) + #define SCALER_CSC2_COEF_CB_BLU_SHIFT 10 +-#define SCALER_CSC2_ITR_R_601_5 0x00066204 +-#define SCALER_CSC2_ITR_R_709_3 0x00072a1c +-#define SCALER_CSC2_JPEG_JFIF 0x000599c5 ++#define SCALER_CSC2_ITR_R_601_5 0x00066604 ++#define SCALER_CSC2_ITR_R_709_3 0x00072e1d ++#define SCALER_CSC2_ITR_R_2020 0x0006b624 ++#define SCALER_CSC2_JPEG_JFIF 0x00059dc6 + #define SCALER_CSC2_ITR_R_709_3_FR 0x00064ddb ++#define SCALER_CSC2_ITR_R_2020_FR 0x0005e5e2 + + #define SCALER_TPZ0_VERT_RECALC BIT(31) + #define SCALER_TPZ0_SCALE_MASK VC4_MASK(28, 8) |