aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2751-drm-amd-display-Added-Opp-and-Diags-Interface-for-P-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2751-drm-amd-display-Added-Opp-and-Diags-Interface-for-P-.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2751-drm-amd-display-Added-Opp-and-Diags-Interface-for-P-.patch227
1 files changed, 227 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2751-drm-amd-display-Added-Opp-and-Diags-Interface-for-P-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2751-drm-amd-display-Added-Opp-and-Diags-Interface-for-P-.patch
new file mode 100644
index 00000000..8682fec1
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2751-drm-amd-display-Added-Opp-and-Diags-Interface-for-P-.patch
@@ -0,0 +1,227 @@
+From c074fdbcea9feb86311cafbff714bcff1841699e Mon Sep 17 00:00:00 2001
+From: Arun Pandey <Arun.Pandey@amd.com>
+Date: Wed, 8 Nov 2017 17:02:55 +0800
+Subject: [PATCH 2751/4131] drm/amd/display: Added Opp and Diags Interface for
+ P to I
+
+Signed-off-by: Arun Pandey <Arun.Pandey@amd.com>
+Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ .../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 2 +-
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c | 2 +-
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.h | 1 +
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c | 29 +++--------------
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.h | 38 ++++++++++++----------
+ drivers/gpu/drm/amd/display/dc/inc/hw/opp.h | 15 +++++++++
+ 6 files changed, 44 insertions(+), 43 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
+index e728147..115ceb9 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
+@@ -431,13 +431,13 @@ static enum dc_status dcn10_prog_pixclk_crtc_otg(
+ struct dc *dc)
+ {
+ struct dc_stream_state *stream = pipe_ctx->stream;
++ struct mpc *mpc = dc->res_pool->mpc;
+ enum dc_color_space color_space;
+ struct tg_color black_color = {0};
+ bool enableStereo = stream->timing.timing_3d_format == TIMING_3D_FORMAT_NONE ?
+ false:true;
+ bool rightEyePolarity = stream->timing.flags.RIGHT_EYE_3D_POLARITY;
+
+-
+ /* by upper caller loop, pipe0 is parent pipe and be called first.
+ * back end is set up by for pipe0. Other children pipe share back end
+ * with pipe 0. No program is needed.
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c
+index 5028619..b016f4c 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c
+@@ -335,7 +335,7 @@ void mpc10_update_blend_mode(
+ MPCC_ALPHA_MULTIPLIED_MODE, cfg->pre_multiplied_alpha);
+ }
+
+-static int mpc10_get_opp_id(struct mpc *mpc, int mpcc_id)
++int mpc10_get_opp_id(struct mpc *mpc, int mpcc_id)
+ {
+ struct dcn10_mpc *mpc10 = TO_DCN10_MPC(mpc);
+ int opp_id = 0xF;
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.h b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.h
+index 683ce4a..e85e1f3 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.h
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.h
+@@ -134,5 +134,6 @@ void mpc10_assert_idle_mpcc(
+ void mpc10_update_blend_mode(
+ struct mpc *mpc,
+ struct mpcc_cfg *cfg);
++int mpc10_get_opp_id(struct mpc *mpc, int mpcc_id);
+
+ #endif
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c
+index 71385a0..3412100 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c
+@@ -38,25 +38,6 @@
+ oppn10->base.ctx
+
+
+-enum dpg_mode {
+- /* RGB colour block mode */
+- DPG_MODE_RGB_COLOUR_BLOCK,
+- /* YCbCr-601 colour block mode */
+- DPG_MODE_YCBCR_601_COLOUR_BLOCK,
+- /* YCbCr-709 colour block mode */
+- DPG_MODE_YCBCR_709_COLOUR_BLOCK,
+- /* Vertical bar mode */
+- DPG_MODE_VERTICAL_BAR,
+- /* Horizontal bar mode */
+- DPG_MODE_HORIZONTAL_BAR,
+- /* Single ramp mode */
+- DPG_MODE_RGB_SINGLE_RAMP,
+- /* Dual ramp mode */
+- DPG_MODE_RGB_DUAL_RAMP,
+- /* RGB XR BIAS mode */
+- DPG_MODE_RGB_XR_BIAS
+-};
+-
+ /************* FORMATTER ************/
+
+ /**
+@@ -154,7 +135,7 @@ static void opp1_set_spatial_dither(
+ FMT_RGB_RANDOM_ENABLE, params->flags.RGB_RANDOM);
+ }
+
+-static void opp1_program_bit_depth_reduction(
++void opp1_program_bit_depth_reduction(
+ struct output_pixel_processor *opp,
+ const struct bit_depth_reduction_params *params)
+ {
+@@ -242,7 +223,7 @@ static void opp1_set_clamping(
+
+ }
+
+-static void opp1_set_dyn_expansion(
++void opp1_set_dyn_expansion(
+ struct output_pixel_processor *opp,
+ enum dc_color_space color_sp,
+ enum dc_color_depth color_dpth,
+@@ -292,7 +273,7 @@ static void opp1_program_clamping_and_pixel_encoding(
+ opp1_set_pixel_encoding(oppn10, params);
+ }
+
+-static void opp1_program_fmt(
++void opp1_program_fmt(
+ struct output_pixel_processor *opp,
+ struct bit_depth_reduction_params *fmt_bit_depth,
+ struct clamping_and_pixel_encoding_params *clamping)
+@@ -315,7 +296,7 @@ static void opp1_program_fmt(
+ return;
+ }
+
+-static void opp1_set_stereo_polarity(
++void opp1_set_stereo_polarity(
+ struct output_pixel_processor *opp,
+ bool enable, bool rightEyePolarity)
+ {
+@@ -328,7 +309,7 @@ static void opp1_set_stereo_polarity(
+ /* Constructor, Destructor */
+ /*****************************************/
+
+-static void opp1_destroy(struct output_pixel_processor **opp)
++void opp1_destroy(struct output_pixel_processor **opp)
+ {
+ kfree(TO_DCN10_OPP(*opp));
+ *opp = NULL;
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.h b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.h
+index cdb220e..4b1e510 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.h
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.h
+@@ -74,18 +74,6 @@
+ OPP_MASK_SH_LIST_DCN(mask_sh)
+
+ #define OPP_DCN10_REG_FIELD_LIST(type) \
+- type DPG_EN; \
+- type DPG_MODE; \
+- type DPG_VRES; \
+- type DPG_HRES; \
+- type DPG_ACTIVE_WIDTH; \
+- type DPG_ACTIVE_HEIGHT; \
+- type DPG_COLOUR0_R_CR; \
+- type DPG_COLOUR1_R_CR; \
+- type DPG_COLOUR0_B_CB; \
+- type DPG_COLOUR1_B_CB; \
+- type DPG_COLOUR0_G_Y; \
+- type DPG_COLOUR1_G_Y; \
+ type FMT_TRUNCATE_EN; \
+ type FMT_TRUNCATE_DEPTH; \
+ type FMT_TRUNCATE_MODE; \
+@@ -118,11 +106,6 @@ struct dcn10_opp_mask {
+ };
+
+ struct dcn10_opp_registers {
+- uint32_t DPG_CONTROL;
+- uint32_t DPG_DIMENSIONS;
+- uint32_t DPG_COLOUR_B_CB;
+- uint32_t DPG_COLOUR_G_Y;
+- uint32_t DPG_COLOUR_R_CR;
+ uint32_t FMT_BIT_DEPTH_CONTROL;
+ uint32_t FMT_CONTROL;
+ uint32_t FMT_DITHER_RAND_R_SEED;
+@@ -150,4 +133,25 @@ void dcn10_opp_construct(struct dcn10_opp *oppn10,
+ const struct dcn10_opp_shift *opp_shift,
+ const struct dcn10_opp_mask *opp_mask);
+
++void opp1_set_dyn_expansion(
++ struct output_pixel_processor *opp,
++ enum dc_color_space color_sp,
++ enum dc_color_depth color_dpth,
++ enum signal_type signal);
++
++void opp1_program_fmt(
++ struct output_pixel_processor *opp,
++ struct bit_depth_reduction_params *fmt_bit_depth,
++ struct clamping_and_pixel_encoding_params *clamping);
++
++void opp1_program_bit_depth_reduction(
++ struct output_pixel_processor *opp,
++ const struct bit_depth_reduction_params *params);
++
++void opp1_set_stereo_polarity(
++ struct output_pixel_processor *opp,
++ bool enable, bool rightEyePolarity);
++
++void opp1_destroy(struct output_pixel_processor **opp);
++
+ #endif
+diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h b/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
+index cd6b0d4..579d105 100644
+--- a/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
++++ b/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
+@@ -281,6 +281,21 @@ struct opp_funcs {
+ bool enable,
+ bool rightEyePolarity);
+
++ void (*opp_set_test_pattern)(
++ struct output_pixel_processor *opp,
++ bool enable);
++
++ void (*opp_dpg_blank_enable)(
++ struct output_pixel_processor *opp,
++ bool enable,
++ const struct tg_color *color,
++ int width,
++ int height);
++
++ void (*opp_convert_pti)(
++ struct output_pixel_processor *opp,
++ bool enable,
++ bool polarity);
+ };
+
+ #endif
+--
+2.7.4
+