From: Harry Wentland <[email protected]>

This adds support for the BT.709/BT.2020 transfer functions
on all current 1D curve plane colorops, i.e., on DEGAM, SHAPER,
and BLND blocks.

With this change the following IGT subtests pass:
kms_colorop --run plane-XR30-XR30-bt2020_inv_oetf
kms_colorop --run plane-XR30-XR30-bt2020_oetf

Signed-off-by: Alex Hung <[email protected]>
Signed-off-by: Harry Wentland <[email protected]>
Reviewed-by: Daniel Stone <[email protected]>
---
v10:
 - Move amdgpu_dm_supported_*_tfs check to Patch 32 (Melissa Wen)

v9:
 - Move DRM_COLOROP_1D_CURVE_BT2020_* from middle to end

v8: 
 - Move BIT(DRM_COLOROP_1D_CURVE_PQ_125_EOTF) in amdgpu_dm_supported_blnd_tfs
   to "drm/amd/display: Enable support for PQ 125 EOTF and Inverse" (Leo Li)

 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c  | 3 +++
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c    | 9 ++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
index eb9b1b0d1025..de195b94ac4d 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c
@@ -678,6 +678,9 @@ amdgpu_colorop_tf_to_dc_tf(enum drm_colorop_curve_1d_type 
tf)
        case DRM_COLOROP_1D_CURVE_PQ_125_EOTF:
        case DRM_COLOROP_1D_CURVE_PQ_125_INV_EOTF:
                return TRANSFER_FUNCTION_PQ;
+       case DRM_COLOROP_1D_CURVE_BT2020_INV_OETF:
+       case DRM_COLOROP_1D_CURVE_BT2020_OETF:
+               return TRANSFER_FUNCTION_BT709;
        default:
                return TRANSFER_FUNCTION_LINEAR;
        }
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
index f79b52ef7d5d..d7162fab0884 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_colorop.c
@@ -33,15 +33,18 @@
 
 const u64 amdgpu_dm_supported_degam_tfs =
        BIT(DRM_COLOROP_1D_CURVE_SRGB_EOTF) |
-       BIT(DRM_COLOROP_1D_CURVE_PQ_125_EOTF);
+       BIT(DRM_COLOROP_1D_CURVE_PQ_125_EOTF) |
+       BIT(DRM_COLOROP_1D_CURVE_BT2020_INV_OETF);
 
 const u64 amdgpu_dm_supported_shaper_tfs =
        BIT(DRM_COLOROP_1D_CURVE_SRGB_INV_EOTF) |
-       BIT(DRM_COLOROP_1D_CURVE_PQ_125_INV_EOTF);
+       BIT(DRM_COLOROP_1D_CURVE_PQ_125_INV_EOTF) |
+       BIT(DRM_COLOROP_1D_CURVE_BT2020_OETF);
 
 const u64 amdgpu_dm_supported_blnd_tfs =
        BIT(DRM_COLOROP_1D_CURVE_SRGB_EOTF) |
-       BIT(DRM_COLOROP_1D_CURVE_PQ_125_EOTF);
+       BIT(DRM_COLOROP_1D_CURVE_PQ_125_EOTF) |
+       BIT(DRM_COLOROP_1D_CURVE_BT2020_INV_OETF);
 
 #define MAX_COLOR_PIPELINE_OPS 10
 
-- 
2.43.0

Reply via email to