aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1831-drm-amd-display-remove-deprecated-pplib-interface.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1831-drm-amd-display-remove-deprecated-pplib-interface.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1831-drm-amd-display-remove-deprecated-pplib-interface.patch166
1 files changed, 166 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1831-drm-amd-display-remove-deprecated-pplib-interface.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1831-drm-amd-display-remove-deprecated-pplib-interface.patch
new file mode 100644
index 00000000..5175977e
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1831-drm-amd-display-remove-deprecated-pplib-interface.patch
@@ -0,0 +1,166 @@
+From 1fc1b37b6684602b87bc7c09dceb5696b9b52fcb Mon Sep 17 00:00:00 2001
+From: Eric Yang <Eric.Yang2@amd.com>
+Date: Wed, 10 Apr 2019 14:08:53 -0400
+Subject: [PATCH 1831/2940] drm/amd/display: remove deprecated pplib interface
+
+[Why]
+The new interface now replaces the old interface for all known
+configurations.
+
+Signed-off-by: Eric Yang <Eric.Yang2@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Signed-off-by: Chaudhary Amit Kumar <Chaudharyamit.Kumar@amd.com>
+---
+ .../drm/amd/display/dc/dcn10/dcn10_clk_mgr.c | 28 +++++--------------
+ drivers/gpu/drm/amd/display/dc/dm_pp_smu.h | 23 ---------------
+ .../gpu/drm/amd/display/dc/inc/core_types.h | 1 -
+ 3 files changed, 7 insertions(+), 45 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_clk_mgr.c
+index 6ef480df84ce..c3853a644514 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_clk_mgr.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_clk_mgr.c
+@@ -151,9 +151,6 @@ static void dcn1_update_clocks(struct clk_mgr *clk_mgr,
+ struct dc *dc = clk_mgr->ctx->dc;
+ struct dc_debug_options *debug = &dc->debug;
+ struct dc_clocks *new_clocks = &context->bw_ctx.bw.dcn.clk;
+- struct pp_smu_display_requirement_rv *smu_req_cur =
+- &dc->res_pool->pp_smu_req;
+- struct pp_smu_display_requirement_rv smu_req = *smu_req_cur;
+ struct pp_smu_funcs_rv *pp_smu = NULL;
+ bool send_request_to_increase = false;
+ bool send_request_to_lower = false;
+@@ -175,9 +172,6 @@ static void dcn1_update_clocks(struct clk_mgr *clk_mgr,
+ */
+ if (pp_smu && pp_smu->set_display_count)
+ pp_smu->set_display_count(&pp_smu->pp_smu, display_count);
+-
+- smu_req.display_count = display_count;
+-
+ }
+
+ if (new_clocks->dispclk_khz > clk_mgr->clks.dispclk_khz
+@@ -188,7 +182,6 @@ static void dcn1_update_clocks(struct clk_mgr *clk_mgr,
+
+ if (should_set_clock(safe_to_lower, new_clocks->phyclk_khz, clk_mgr->clks.phyclk_khz)) {
+ clk_mgr->clks.phyclk_khz = new_clocks->phyclk_khz;
+-
+ send_request_to_lower = true;
+ }
+
+@@ -198,14 +191,13 @@ static void dcn1_update_clocks(struct clk_mgr *clk_mgr,
+
+ if (should_set_clock(safe_to_lower, new_clocks->fclk_khz, clk_mgr->clks.fclk_khz)) {
+ clk_mgr->clks.fclk_khz = new_clocks->fclk_khz;
+- smu_req.hard_min_fclk_mhz = new_clocks->fclk_khz / 1000;
++
+ send_request_to_lower = true;
+ }
+
+ //DCF Clock
+ if (should_set_clock(safe_to_lower, new_clocks->dcfclk_khz, clk_mgr->clks.dcfclk_khz)) {
+ clk_mgr->clks.dcfclk_khz = new_clocks->dcfclk_khz;
+- smu_req.hard_min_dcefclk_mhz = new_clocks->dcfclk_khz / 1000;
+
+ send_request_to_lower = true;
+ }
+@@ -213,7 +205,6 @@ static void dcn1_update_clocks(struct clk_mgr *clk_mgr,
+ if (should_set_clock(safe_to_lower,
+ new_clocks->dcfclk_deep_sleep_khz, clk_mgr->clks.dcfclk_deep_sleep_khz)) {
+ clk_mgr->clks.dcfclk_deep_sleep_khz = new_clocks->dcfclk_deep_sleep_khz;
+- smu_req.min_deep_sleep_dcefclk_mhz = (new_clocks->dcfclk_deep_sleep_khz + 999) / 1000;
+
+ send_request_to_lower = true;
+ }
+@@ -226,10 +217,10 @@ static void dcn1_update_clocks(struct clk_mgr *clk_mgr,
+ if (pp_smu && pp_smu->set_hard_min_fclk_by_freq &&
+ pp_smu->set_hard_min_dcfclk_by_freq &&
+ pp_smu->set_min_deep_sleep_dcfclk) {
++ pp_smu->set_hard_min_fclk_by_freq(&pp_smu->pp_smu, new_clocks->fclk_khz / 1000);
++ pp_smu->set_hard_min_dcfclk_by_freq(&pp_smu->pp_smu, new_clocks->dcfclk_khz / 1000);
++ pp_smu->set_min_deep_sleep_dcfclk(&pp_smu->pp_smu, (new_clocks->dcfclk_deep_sleep_khz + 999) / 1000);
+
+- pp_smu->set_hard_min_fclk_by_freq(&pp_smu->pp_smu, smu_req.hard_min_fclk_mhz);
+- pp_smu->set_hard_min_dcfclk_by_freq(&pp_smu->pp_smu, smu_req.hard_min_dcefclk_mhz);
+- pp_smu->set_min_deep_sleep_dcfclk(&pp_smu->pp_smu, smu_req.min_deep_sleep_dcefclk_mhz);
+ }
+ }
+
+@@ -239,7 +230,6 @@ static void dcn1_update_clocks(struct clk_mgr *clk_mgr,
+ || new_clocks->dispclk_khz == clk_mgr->clks.dispclk_khz) {
+ dcn1_ramp_up_dispclk_with_dpp(clk_mgr, new_clocks);
+ clk_mgr->clks.dispclk_khz = new_clocks->dispclk_khz;
+-
+ send_request_to_lower = true;
+ }
+
+@@ -248,16 +238,12 @@ static void dcn1_update_clocks(struct clk_mgr *clk_mgr,
+ if (pp_smu && pp_smu->set_hard_min_fclk_by_freq &&
+ pp_smu->set_hard_min_dcfclk_by_freq &&
+ pp_smu->set_min_deep_sleep_dcfclk) {
+-
+- pp_smu->set_hard_min_fclk_by_freq(&pp_smu->pp_smu, smu_req.hard_min_fclk_mhz);
+- pp_smu->set_hard_min_dcfclk_by_freq(&pp_smu->pp_smu, smu_req.hard_min_dcefclk_mhz);
+- pp_smu->set_min_deep_sleep_dcfclk(&pp_smu->pp_smu, smu_req.min_deep_sleep_dcefclk_mhz);
++ pp_smu->set_hard_min_fclk_by_freq(&pp_smu->pp_smu, new_clocks->fclk_khz / 1000);
++ pp_smu->set_hard_min_dcfclk_by_freq(&pp_smu->pp_smu, new_clocks->dcfclk_khz / 1000);
++ pp_smu->set_min_deep_sleep_dcfclk(&pp_smu->pp_smu, (new_clocks->dcfclk_deep_sleep_khz + 999) / 1000);
+ }
+
+ }
+-
+-
+- *smu_req_cur = smu_req;
+ }
+ static const struct clk_mgr_funcs dcn1_funcs = {
+ .get_dp_ref_clk_frequency = dce12_get_dp_ref_freq_khz,
+diff --git a/drivers/gpu/drm/amd/display/dc/dm_pp_smu.h b/drivers/gpu/drm/amd/display/dc/dm_pp_smu.h
+index b9bb8ef06cd8..ef8876843a11 100644
+--- a/drivers/gpu/drm/amd/display/dc/dm_pp_smu.h
++++ b/drivers/gpu/drm/amd/display/dc/dm_pp_smu.h
+@@ -74,29 +74,6 @@ struct pp_smu_wm_range_sets {
+ struct pp_smu_wm_set_range writer_wm_sets[MAX_WATERMARK_SETS];
+ };
+
+-struct pp_smu_display_requirement_rv {
+- /* PPSMC_MSG_SetDisplayCount: count
+- * 0 triggers S0i2 optimization
+- */
+- unsigned int display_count;
+-
+- /* PPSMC_MSG_SetHardMinFclkByFreq: mhz
+- * FCLK will vary with DPM, but never below requested hard min
+- */
+- unsigned int hard_min_fclk_mhz;
+-
+- /* PPSMC_MSG_SetHardMinDcefclkByFreq: mhz
+- * fixed clock at requested freq, either from FCH bypass or DFS
+- */
+- unsigned int hard_min_dcefclk_mhz;
+-
+- /* PPSMC_MSG_SetMinDeepSleepDcefclk: mhz
+- * when DF is in cstate, dcf clock is further divided down
+- * to just above given frequency
+- */
+- unsigned int min_deep_sleep_dcefclk_mhz;
+-};
+-
+ struct pp_smu_funcs_rv {
+ struct pp_smu pp_smu;
+
+diff --git a/drivers/gpu/drm/amd/display/dc/inc/core_types.h b/drivers/gpu/drm/amd/display/dc/inc/core_types.h
+index 51e29a0f111d..8cbd3b57f7a2 100644
+--- a/drivers/gpu/drm/amd/display/dc/inc/core_types.h
++++ b/drivers/gpu/drm/amd/display/dc/inc/core_types.h
+@@ -145,7 +145,6 @@ struct resource_pool {
+ struct hubbub *hubbub;
+ struct mpc *mpc;
+ struct pp_smu_funcs *pp_smu;
+- struct pp_smu_display_requirement_rv pp_smu_req;
+ struct dce_aux *engines[MAX_PIPES];
+ struct dce_i2c_hw *hw_i2cs[MAX_PIPES];
+ struct dce_i2c_sw *sw_i2cs[MAX_PIPES];
+--
+2.17.1
+