aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2010-drm-amd-display-Implement-CM-dealpha-and-bias-interf.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2010-drm-amd-display-Implement-CM-dealpha-and-bias-interf.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2010-drm-amd-display-Implement-CM-dealpha-and-bias-interf.patch109
1 files changed, 109 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2010-drm-amd-display-Implement-CM-dealpha-and-bias-interf.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2010-drm-amd-display-Implement-CM-dealpha-and-bias-interf.patch
new file mode 100644
index 00000000..fef3230b
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2010-drm-amd-display-Implement-CM-dealpha-and-bias-interf.patch
@@ -0,0 +1,109 @@
+From 003f5bbb2b35ca6ffe539207447525800f7561bc Mon Sep 17 00:00:00 2001
+From: Gary Kattan <gary.kattan@amd.com>
+Date: Fri, 22 Feb 2019 12:51:18 -0800
+Subject: [PATCH 2010/2940] drm/amd/display: Implement CM dealpha and bias
+ interfaces
+
+Add vtable entries for de-alpha and bias color management interfaces.
+Move piece-wise transfer function registers to a helper list for future
+reuse.
+
+Signed-off-by: Gary Kattan <gary.kattan@amd.com>
+Reviewed-by: Nevenko Stupar <Nevenko.Stupar@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+---
+ .../amd/display/dc/dcn10/dcn10_cm_common.h | 31 ++++++++++---------
+ drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h | 17 ++++++++++
+ 2 files changed, 34 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.h b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.h
+index 5ae4d69391a5..3b8cd7410498 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.h
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.h
+@@ -38,6 +38,22 @@
+ type exp_resion_start_segment;\
+ type field_region_linear_slope
+
++#define TF_HELPER_REG_LIST \
++ uint32_t start_cntl_b; \
++ uint32_t start_cntl_g; \
++ uint32_t start_cntl_r; \
++ uint32_t start_slope_cntl_b; \
++ uint32_t start_slope_cntl_g; \
++ uint32_t start_slope_cntl_r; \
++ uint32_t start_end_cntl1_b; \
++ uint32_t start_end_cntl2_b; \
++ uint32_t start_end_cntl1_g; \
++ uint32_t start_end_cntl2_g; \
++ uint32_t start_end_cntl1_r; \
++ uint32_t start_end_cntl2_r; \
++ uint32_t region_start; \
++ uint32_t region_end
++
+ #define TF_CM_REG_FIELD_LIST(type) \
+ type csc_c11; \
+ type csc_c12
+@@ -54,20 +70,7 @@ struct xfer_func_reg {
+ struct xfer_func_shift shifts;
+ struct xfer_func_mask masks;
+
+- uint32_t start_cntl_b;
+- uint32_t start_cntl_g;
+- uint32_t start_cntl_r;
+- uint32_t start_slope_cntl_b;
+- uint32_t start_slope_cntl_g;
+- uint32_t start_slope_cntl_r;
+- uint32_t start_end_cntl1_b;
+- uint32_t start_end_cntl2_b;
+- uint32_t start_end_cntl1_g;
+- uint32_t start_end_cntl2_g;
+- uint32_t start_end_cntl1_r;
+- uint32_t start_end_cntl2_r;
+- uint32_t region_start;
+- uint32_t region_end;
++ TF_HELPER_REG_LIST;
+ };
+
+ struct cm_color_matrix_shift {
+diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h
+index fb7967b39edb..b55c5a2e56e2 100644
+--- a/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h
++++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h
+@@ -64,7 +64,22 @@ struct dcn_dpp_state {
+ uint32_t gamut_remap_c33_c34;
+ };
+
++struct CM_bias_params {
++ uint32_t cm_bias_cr_r;
++ uint32_t cm_bias_y_g;
++ uint32_t cm_bias_cb_b;
++ uint32_t cm_bias_format;
++};
++
+ struct dpp_funcs {
++
++ void (*dpp_program_cm_dealpha)(struct dpp *dpp_base,
++ uint32_t enable, uint32_t additive_blending);
++
++ void (*dpp_program_cm_bias)(
++ struct dpp *dpp_base,
++ struct CM_bias_params *bias_params);
++
+ void (*dpp_read_state)(struct dpp *dpp, struct dcn_dpp_state *s);
+
+ void (*dpp_reset)(struct dpp *dpp);
+@@ -155,9 +170,11 @@ struct dpp_funcs {
+ uint32_t width,
+ uint32_t height
+ );
++
+ void (*dpp_set_hdr_multiplier)(
+ struct dpp *dpp_base,
+ uint32_t multiplier);
++
+ void (*set_optional_cursor_attributes)(
+ struct dpp *dpp_base,
+ struct dpp_cursor_attributes *attr);
+--
+2.17.1
+