Currently input csc for YCbCR to RGB conversion handles only
BT601 and Bt709. Extending it to support BT2020 as well.

v2: Fixed the co-efficients for LR to FR conversion,
as suggested by Ville.

v3: Fixed Y Pre-offset in case of Full Range YCbCr as suggested
by Ville.

v4: Split the v2 and v3 changes.

v5: Rebase

v6: Fix a rebase fumble.

Reviewed-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
Signed-off-by: Uma Shankar <uma.shan...@intel.com>
Signed-off-by: Shashank Sharma <shashank.sha...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_sprite.c | 24 +++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c 
b/drivers/gpu/drm/i915/display/intel_sprite.c
index 004b52027ae8..1b76a54a91ad 100644
--- a/drivers/gpu/drm/i915/display/intel_sprite.c
+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
@@ -444,6 +444,18 @@ icl_program_input_csc(struct intel_plane *plane,
                        0x9EF8, 0x7800, 0xABF8,
                        0x0, 0x7800,  0x7ED8,
                },
+               /*
+                * BT.2020 full range YCbCr -> full range RGB
+                * The matrix required is :
+                * [1.000, 0.000, 1.474,
+                *  1.000, -0.1645, -0.5713,
+                *  1.000, 1.8814, 0.0000]
+                */
+               [DRM_COLOR_YCBCR_BT2020] = {
+                       0x7BC8, 0x7800, 0x0,
+                       0x8928, 0x7800, 0xAA88,
+                       0x0, 0x7800, 0x7F10,
+               },
        };
 
        /* Matrix for Limited Range to Full Range Conversion */
@@ -472,6 +484,18 @@ icl_program_input_csc(struct intel_plane *plane,
                        0x8888, 0x7918, 0xADA8,
                        0x0, 0x7918,  0x6870,
                },
+               /*
+                * BT.2020 Limited range YCbCr -> full range RGB
+                * The matrix required is :
+                * [1.164, 0.000, 1.678,
+                *  1.164, -0.1873, -0.6504,
+                *  1.164, 2.1417, 0.0000]
+                */
+               [DRM_COLOR_YCBCR_BT2020] = {
+                       0x7D70, 0x7950, 0x0,
+                       0x8A68, 0x7950, 0xAC00,
+                       0x0, 0x7950, 0x6890,
+               },
        };
        const u16 *csc;
 
-- 
2.22.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to