aboutsummaryrefslogtreecommitdiffstats
path: root/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4752-drm-amd-display-replace-clocks_value-struct-with-dc_.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4752-drm-amd-display-replace-clocks_value-struct-with-dc_.patch')
-rw-r--r--meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4752-drm-amd-display-replace-clocks_value-struct-with-dc_.patch378
1 files changed, 0 insertions, 378 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4752-drm-amd-display-replace-clocks_value-struct-with-dc_.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4752-drm-amd-display-replace-clocks_value-struct-with-dc_.patch
deleted file mode 100644
index ef7a4525..00000000
--- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4752-drm-amd-display-replace-clocks_value-struct-with-dc_.patch
+++ /dev/null
@@ -1,378 +0,0 @@
-From 2debb6972a470ed43081814f6f9161dd32ce7916 Mon Sep 17 00:00:00 2001
-From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
-Date: Wed, 23 May 2018 13:16:50 -0400
-Subject: [PATCH 4752/5725] drm/amd/display: replace clocks_value struct with
- dc_clocks
-
-This will avoid structs with duplicate information. Also
-removes pixel clock voltage request. This has no effect since
-pixel clock does not affect dcn voltage and this function only
-matters for dcn.
-
-Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
-Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
-Acked-by: Harry Wentland <harry.wentland@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c | 34 ++++++++--------
- drivers/gpu/drm/amd/display/dc/core/dc_link.c | 8 ++--
- drivers/gpu/drm/amd/display/dc/dc.h | 5 +++
- drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c | 46 ++++++++--------------
- .../amd/display/dc/dce110/dce110_hw_sequencer.c | 18 +--------
- drivers/gpu/drm/amd/display/dc/inc/dcn_calcs.h | 2 +-
- .../gpu/drm/amd/display/dc/inc/hw/display_clock.h | 22 ++---------
- 7 files changed, 49 insertions(+), 86 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c
-index 49a4ea4..d8a3165 100644
---- a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c
-+++ b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c
-@@ -1145,10 +1145,10 @@ static unsigned int dcn_find_normalized_clock_vdd_Level(
-
- switch (clocks_type) {
- case DM_PP_CLOCK_TYPE_DISPLAY_CLK:
-- if (clocks_in_khz > dc->dcn_soc->max_dispclk_vmax0p9*1000) {
-+ /*if (clocks_in_khz > dc->dcn_soc->max_dispclk_vmax0p9*1000) {
- vdd_level = dcn_bw_v_max0p91;
-- BREAK_TO_DEBUGGER();
-- } else if (clocks_in_khz > dc->dcn_soc->max_dispclk_vnom0p8*1000) {
-+ //BREAK_TO_DEBUGGER();
-+ } else*/ if (clocks_in_khz > dc->dcn_soc->max_dispclk_vnom0p8*1000) {
- vdd_level = dcn_bw_v_max0p9;
- } else if (clocks_in_khz > dc->dcn_soc->max_dispclk_vmid0p72*1000) {
- vdd_level = dcn_bw_v_nom0p8;
-@@ -1158,10 +1158,10 @@ static unsigned int dcn_find_normalized_clock_vdd_Level(
- vdd_level = dcn_bw_v_min0p65;
- break;
- case DM_PP_CLOCK_TYPE_DISPLAYPHYCLK:
-- if (clocks_in_khz > dc->dcn_soc->phyclkv_max0p9*1000) {
-+ /*if (clocks_in_khz > dc->dcn_soc->phyclkv_max0p9*1000) {
- vdd_level = dcn_bw_v_max0p91;
- BREAK_TO_DEBUGGER();
-- } else if (clocks_in_khz > dc->dcn_soc->phyclkv_nom0p8*1000) {
-+ } else*/ if (clocks_in_khz > dc->dcn_soc->phyclkv_nom0p8*1000) {
- vdd_level = dcn_bw_v_max0p9;
- } else if (clocks_in_khz > dc->dcn_soc->phyclkv_mid0p72*1000) {
- vdd_level = dcn_bw_v_nom0p8;
-@@ -1172,10 +1172,10 @@ static unsigned int dcn_find_normalized_clock_vdd_Level(
- break;
-
- case DM_PP_CLOCK_TYPE_DPPCLK:
-- if (clocks_in_khz > dc->dcn_soc->max_dppclk_vmax0p9*1000) {
-+ /*if (clocks_in_khz > dc->dcn_soc->max_dppclk_vmax0p9*1000) {
- vdd_level = dcn_bw_v_max0p91;
- BREAK_TO_DEBUGGER();
-- } else if (clocks_in_khz > dc->dcn_soc->max_dppclk_vnom0p8*1000) {
-+ } else*/ if (clocks_in_khz > dc->dcn_soc->max_dppclk_vnom0p8*1000) {
- vdd_level = dcn_bw_v_max0p9;
- } else if (clocks_in_khz > dc->dcn_soc->max_dppclk_vmid0p72*1000) {
- vdd_level = dcn_bw_v_nom0p8;
-@@ -1189,10 +1189,10 @@ static unsigned int dcn_find_normalized_clock_vdd_Level(
- {
- unsigned factor = (ddr4_dram_factor_single_Channel * dc->dcn_soc->number_of_channels);
-
-- if (clocks_in_khz > dc->dcn_soc->fabric_and_dram_bandwidth_vmax0p9*1000000/factor) {
-+ /*if (clocks_in_khz > dc->dcn_soc->fabric_and_dram_bandwidth_vmax0p9*1000000/factor) {
- vdd_level = dcn_bw_v_max0p91;
- BREAK_TO_DEBUGGER();
-- } else if (clocks_in_khz > dc->dcn_soc->fabric_and_dram_bandwidth_vnom0p8*1000000/factor) {
-+ } else */if (clocks_in_khz > dc->dcn_soc->fabric_and_dram_bandwidth_vnom0p8*1000000/factor) {
- vdd_level = dcn_bw_v_max0p9;
- } else if (clocks_in_khz > dc->dcn_soc->fabric_and_dram_bandwidth_vmid0p72*1000000/factor) {
- vdd_level = dcn_bw_v_nom0p8;
-@@ -1204,10 +1204,10 @@ static unsigned int dcn_find_normalized_clock_vdd_Level(
- break;
-
- case DM_PP_CLOCK_TYPE_DCFCLK:
-- if (clocks_in_khz > dc->dcn_soc->dcfclkv_max0p9*1000) {
-+ /*if (clocks_in_khz > dc->dcn_soc->dcfclkv_max0p9*1000) {
- vdd_level = dcn_bw_v_max0p91;
- BREAK_TO_DEBUGGER();
-- } else if (clocks_in_khz > dc->dcn_soc->dcfclkv_nom0p8*1000) {
-+ } else */if (clocks_in_khz > dc->dcn_soc->dcfclkv_nom0p8*1000) {
- vdd_level = dcn_bw_v_max0p9;
- } else if (clocks_in_khz > dc->dcn_soc->dcfclkv_mid0p72*1000) {
- vdd_level = dcn_bw_v_nom0p8;
-@@ -1225,27 +1225,27 @@ static unsigned int dcn_find_normalized_clock_vdd_Level(
-
- unsigned int dcn_find_dcfclk_suits_all(
- const struct dc *dc,
-- struct clocks_value *clocks)
-+ struct dc_clocks *clocks)
- {
- unsigned vdd_level, vdd_level_temp;
- unsigned dcf_clk;
-
- /*find a common supported voltage level*/
- vdd_level = dcn_find_normalized_clock_vdd_Level(
-- dc, DM_PP_CLOCK_TYPE_DISPLAY_CLK, clocks->dispclk_in_khz);
-+ dc, DM_PP_CLOCK_TYPE_DISPLAY_CLK, clocks->dispclk_khz);
- vdd_level_temp = dcn_find_normalized_clock_vdd_Level(
-- dc, DM_PP_CLOCK_TYPE_DISPLAYPHYCLK, clocks->phyclk_in_khz);
-+ dc, DM_PP_CLOCK_TYPE_DISPLAYPHYCLK, clocks->phyclk_khz);
-
- vdd_level = dcn_bw_max(vdd_level, vdd_level_temp);
- vdd_level_temp = dcn_find_normalized_clock_vdd_Level(
-- dc, DM_PP_CLOCK_TYPE_DPPCLK, clocks->dppclk_in_khz);
-+ dc, DM_PP_CLOCK_TYPE_DPPCLK, clocks->dppclk_khz);
- vdd_level = dcn_bw_max(vdd_level, vdd_level_temp);
-
- vdd_level_temp = dcn_find_normalized_clock_vdd_Level(
-- dc, DM_PP_CLOCK_TYPE_MEMORY_CLK, clocks->dcfclock_in_khz);
-+ dc, DM_PP_CLOCK_TYPE_MEMORY_CLK, clocks->fclk_khz);
- vdd_level = dcn_bw_max(vdd_level, vdd_level_temp);
- vdd_level_temp = dcn_find_normalized_clock_vdd_Level(
-- dc, DM_PP_CLOCK_TYPE_DCFCLK, clocks->dcfclock_in_khz);
-+ dc, DM_PP_CLOCK_TYPE_DCFCLK, clocks->dcfclk_khz);
-
- /*find that level conresponding dcfclk*/
- vdd_level = dcn_bw_max(vdd_level, vdd_level_temp);
-diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
-index 53f9db9..af9e0db 100644
---- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
-+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
-@@ -1290,15 +1290,13 @@ static enum dc_status enable_link_dp(
- state->dis_clk, DM_PP_CLOCKS_STATE_NOMINAL);
- } else {
- uint32_t dp_phyclk_in_khz;
-- const struct clocks_value clocks_value =
-- state->dis_clk->cur_clocks_value;
-+ const struct dc_clocks clocks_value =
-+ state->dis_clk->clks;
-
- /* 27mhz = 27000000hz= 27000khz */
- dp_phyclk_in_khz = link_settings.link_rate * 27000;
-
-- if (((clocks_value.max_non_dp_phyclk_in_khz != 0) &&
-- (dp_phyclk_in_khz > clocks_value.max_non_dp_phyclk_in_khz)) ||
-- (dp_phyclk_in_khz > clocks_value.max_dp_phyclk_in_khz)) {
-+ if (dp_phyclk_in_khz > clocks_value.phyclk_khz) {
- state->dis_clk->funcs->apply_clock_voltage_request(
- state->dis_clk,
- DM_PP_CLOCK_TYPE_DISPLAYPHYCLK,
-diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
-index 56c1e2b..3471485 100644
---- a/drivers/gpu/drm/amd/display/dc/dc.h
-+++ b/drivers/gpu/drm/amd/display/dc/dc.h
-@@ -187,6 +187,10 @@ enum wm_report_mode {
- WM_REPORT_OVERRIDE = 1,
- };
-
-+/*
-+ * For any clocks that may differ per pipe
-+ * only the max is stored in this structure
-+ */
- struct dc_clocks {
- int dispclk_khz;
- int max_supported_dppclk_khz;
-@@ -195,6 +199,7 @@ struct dc_clocks {
- int socclk_khz;
- int dcfclk_deep_sleep_khz;
- int fclk_khz;
-+ int phyclk_khz;
- };
-
- struct dc_debug {
-diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
-index 8a581c6..b749a20 100644
---- a/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
-+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clocks.c
-@@ -560,11 +560,9 @@ static bool dce_apply_clock_voltage_request(
-
- switch (clocks_type) {
- case DM_PP_CLOCK_TYPE_DISPLAY_CLK:
-- case DM_PP_CLOCK_TYPE_PIXELCLK:
- case DM_PP_CLOCK_TYPE_DISPLAYPHYCLK:
- break;
- default:
-- BREAK_TO_DEBUGGER();
- return false;
- }
-
-@@ -575,31 +573,22 @@ static bool dce_apply_clock_voltage_request(
- if (pre_mode_set) {
- switch (clocks_type) {
- case DM_PP_CLOCK_TYPE_DISPLAY_CLK:
-- if (clocks_in_khz > clk->cur_clocks_value.dispclk_in_khz) {
-- clk->cur_clocks_value.dispclk_notify_pplib_done = true;
-+ if (clocks_in_khz > clk->clks.dispclk_khz) {
-+ clk->dispclk_notify_pplib_done = true;
- send_request = true;
- } else
-- clk->cur_clocks_value.dispclk_notify_pplib_done = false;
-+ clk->dispclk_notify_pplib_done = false;
- /* no matter incrase or decrase clock, update current clock value */
-- clk->cur_clocks_value.dispclk_in_khz = clocks_in_khz;
-- break;
-- case DM_PP_CLOCK_TYPE_PIXELCLK:
-- if (clocks_in_khz > clk->cur_clocks_value.max_pixelclk_in_khz) {
-- clk->cur_clocks_value.pixelclk_notify_pplib_done = true;
-- send_request = true;
-- } else
-- clk->cur_clocks_value.pixelclk_notify_pplib_done = false;
-- /* no matter incrase or decrase clock, update current clock value */
-- clk->cur_clocks_value.max_pixelclk_in_khz = clocks_in_khz;
-+ clk->clks.dispclk_khz = clocks_in_khz;
- break;
- case DM_PP_CLOCK_TYPE_DISPLAYPHYCLK:
-- if (clocks_in_khz > clk->cur_clocks_value.max_non_dp_phyclk_in_khz) {
-- clk->cur_clocks_value.phyclk_notigy_pplib_done = true;
-+ if (clocks_in_khz > clk->clks.phyclk_khz) {
-+ clk->phyclk_notify_pplib_done = true;
- send_request = true;
- } else
-- clk->cur_clocks_value.phyclk_notigy_pplib_done = false;
-+ clk->phyclk_notify_pplib_done = false;
- /* no matter incrase or decrase clock, update current clock value */
-- clk->cur_clocks_value.max_non_dp_phyclk_in_khz = clocks_in_khz;
-+ clk->clks.phyclk_khz = clocks_in_khz;
- break;
- default:
- ASSERT(0);
-@@ -609,16 +598,14 @@ static bool dce_apply_clock_voltage_request(
- } else {
- switch (clocks_type) {
- case DM_PP_CLOCK_TYPE_DISPLAY_CLK:
-- if (!clk->cur_clocks_value.dispclk_notify_pplib_done)
-- send_request = true;
-- break;
-- case DM_PP_CLOCK_TYPE_PIXELCLK:
-- if (!clk->cur_clocks_value.pixelclk_notify_pplib_done)
-+ if (!clk->dispclk_notify_pplib_done)
- send_request = true;
-+ clk->dispclk_notify_pplib_done = true;
- break;
- case DM_PP_CLOCK_TYPE_DISPLAYPHYCLK:
-- if (!clk->cur_clocks_value.phyclk_notigy_pplib_done)
-+ if (!clk->phyclk_notify_pplib_done)
- send_request = true;
-+ clk->phyclk_notify_pplib_done = true;
- break;
- default:
- ASSERT(0);
-@@ -627,20 +614,21 @@ static bool dce_apply_clock_voltage_request(
- }
- if (send_request) {
- #if defined(CONFIG_DRM_AMD_DC_DCN1_0)
-- if (clk->ctx->dce_version >= DCN_VERSION_1_0) {
-+ if (clk->ctx->dce_version >= DCN_VERSION_1_0
-+ ) {
- struct dc *core_dc = clk->ctx->dc;
- /*use dcfclk request voltage*/
- clock_voltage_req.clk_type = DM_PP_CLOCK_TYPE_DCFCLK;
- clock_voltage_req.clocks_in_khz =
-- dcn_find_dcfclk_suits_all(core_dc, &clk->cur_clocks_value);
-+ dcn_find_dcfclk_suits_all(core_dc, &clk->clks);
- }
- #endif
- dm_pp_apply_clock_for_voltage_request(
- clk->ctx, &clock_voltage_req);
- }
- if (update_dp_phyclk && (clocks_in_khz >
-- clk->cur_clocks_value.max_dp_phyclk_in_khz))
-- clk->cur_clocks_value.max_dp_phyclk_in_khz = clocks_in_khz;
-+ clk->clks.phyclk_khz))
-+ clk->clks.phyclk_khz = clocks_in_khz;
-
- return true;
- }
-diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
-index 57d8113..e540172 100644
---- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
-+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
-@@ -1800,21 +1800,14 @@ static void apply_min_clocks(
- context->dis_clk->funcs->apply_clock_voltage_request(
- context->dis_clk,
- DM_PP_CLOCK_TYPE_DISPLAY_CLK,
-- context->dis_clk->cur_clocks_value.dispclk_in_khz,
-- pre_mode_set,
-- false);
--
-- context->dis_clk->funcs->apply_clock_voltage_request(
-- context->dis_clk,
-- DM_PP_CLOCK_TYPE_PIXELCLK,
-- context->dis_clk->cur_clocks_value.max_pixelclk_in_khz,
-+ context->dis_clk->clks.dispclk_khz,
- pre_mode_set,
- false);
-
- context->dis_clk->funcs->apply_clock_voltage_request(
- context->dis_clk,
- DM_PP_CLOCK_TYPE_DISPLAYPHYCLK,
-- context->dis_clk->cur_clocks_value.max_non_dp_phyclk_in_khz,
-+ context->dis_clk->clks.phyclk_khz,
- pre_mode_set,
- false);
- return;
-@@ -1843,13 +1836,6 @@ static void apply_min_clocks(
-
- context->dis_clk->funcs->apply_clock_voltage_request(
- context->dis_clk,
-- DM_PP_CLOCK_TYPE_PIXELCLK,
-- req_clocks.pixel_clk_khz,
-- pre_mode_set,
-- false);
--
-- context->dis_clk->funcs->apply_clock_voltage_request(
-- context->dis_clk,
- DM_PP_CLOCK_TYPE_DISPLAYPHYCLK,
- req_clocks.pixel_clk_khz,
- pre_mode_set,
-diff --git a/drivers/gpu/drm/amd/display/dc/inc/dcn_calcs.h b/drivers/gpu/drm/amd/display/dc/inc/dcn_calcs.h
-index 132d18d..ddbb673 100644
---- a/drivers/gpu/drm/amd/display/dc/inc/dcn_calcs.h
-+++ b/drivers/gpu/drm/amd/display/dc/inc/dcn_calcs.h
-@@ -625,7 +625,7 @@ bool dcn_validate_bandwidth(
-
- unsigned int dcn_find_dcfclk_suits_all(
- const struct dc *dc,
-- struct clocks_value *clocks);
-+ struct dc_clocks *clocks);
-
- void dcn_bw_update_from_pplib(struct dc *dc);
- void dcn_bw_notify_pplib_of_wm_ranges(struct dc *dc);
-diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/display_clock.h b/drivers/gpu/drm/amd/display/dc/inc/hw/display_clock.h
-index f5f69cd..6b9ca55 100644
---- a/drivers/gpu/drm/amd/display/dc/inc/hw/display_clock.h
-+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/display_clock.h
-@@ -27,23 +27,7 @@
- #define __DISPLAY_CLOCK_H__
-
- #include "dm_services_types.h"
--
--
--struct clocks_value {
-- int dispclk_in_khz;
-- int max_pixelclk_in_khz;
-- int max_non_dp_phyclk_in_khz;
-- int max_dp_phyclk_in_khz;
-- bool dispclk_notify_pplib_done;
-- bool pixelclk_notify_pplib_done;
-- bool phyclk_notigy_pplib_done;
-- int dcfclock_in_khz;
-- int dppclk_in_khz;
-- int mclk_in_khz;
-- int phyclk_in_khz;
-- int common_vdd_level;
--};
--
-+#include "dc.h"
-
- /* Structure containing all state-dependent clocks
- * (dependent on "enum clocks_state") */
-@@ -56,9 +40,11 @@ struct display_clock {
- struct dc_context *ctx;
- const struct display_clock_funcs *funcs;
-
-+ bool dispclk_notify_pplib_done;
-+ bool phyclk_notify_pplib_done;
- enum dm_pp_clocks_state max_clks_state;
- enum dm_pp_clocks_state cur_min_clks_state;
-- struct clocks_value cur_clocks_value;
-+ struct dc_clocks clks;
- };
-
- struct display_clock_funcs {
---
-2.7.4
-