aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3413-drm-amd-display-clean-up-DML-for-DCN2x.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3413-drm-amd-display-clean-up-DML-for-DCN2x.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3413-drm-amd-display-clean-up-DML-for-DCN2x.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3413-drm-amd-display-clean-up-DML-for-DCN2x.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3413-drm-amd-display-clean-up-DML-for-DCN2x.patch
new file mode 100644
index 00000000..74a898de
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3413-drm-amd-display-clean-up-DML-for-DCN2x.patch
@@ -0,0 +1,80 @@
+From b0f836172fa28e0aa3b64bc6c473372d6232cab5 Mon Sep 17 00:00:00 2001
+From: Jun Lei <Jun.Lei@amd.com>
+Date: Thu, 18 Jul 2019 10:02:40 -0400
+Subject: [PATCH 3413/4256] drm/amd/display: clean up DML for DCN2x
+
+[why]
+Previous "less risky" implemenation of 3 tiered fallback is no longer necessary since
+DMLv2 has gone through proper validation. v2 can now be used as the default and 1
+level of fallback can be removed
+
+[how]
+remove previous workaround implemenation
+
+Signed-off-by: Jun Lei <Jun.Lei@amd.com>
+Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dc.h | 1 -
+ .../drm/amd/display/dc/dcn20/dcn20_resource.c | 19 +++----------------
+ 2 files changed, 3 insertions(+), 17 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
+index b9275993fcde..32312827daae 100644
+--- a/drivers/gpu/drm/amd/display/dc/dc.h
++++ b/drivers/gpu/drm/amd/display/dc/dc.h
+@@ -124,7 +124,6 @@ struct dc_caps {
+ struct dc_bug_wa {
+ bool no_connect_phy_config;
+ bool dedcn20_305_wa;
+- struct display_mode_lib alternate_dml;
+ bool skip_clock_update;
+ };
+ #endif
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
+index a26541bafc75..af8ab57a8af5 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
+@@ -2610,7 +2610,7 @@ bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context,
+ goto restore_dml_state;
+ }
+
+- // Fallback #1: Try to only support G6 temperature read latency
++ // Fallback: Try to only support G6 temperature read latency
+ context->bw_ctx.dml.soc.dram_clock_change_latency_us = context->bw_ctx.dml.soc.dummy_pstate_latency_us;
+
+ voltage_supported = dcn20_validate_bandwidth_internal(dc, context, false);
+@@ -2621,19 +2621,7 @@ bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context,
+ goto restore_dml_state;
+ }
+
+- // Fallback #2: Retry with "new" DCN20 to support G6 temperature read latency
+- memcpy (&context->bw_ctx.dml, &dc->work_arounds.alternate_dml, sizeof (struct display_mode_lib));
+- context->bw_ctx.dml.soc.dram_clock_change_latency_us = context->bw_ctx.dml.soc.dummy_pstate_latency_us;
+-
+- voltage_supported = dcn20_validate_bandwidth_internal(dc, context, false);
+- dummy_pstate_supported = context->bw_ctx.bw.dcn.clk.p_state_change_support;
+-
+- if (voltage_supported && dummy_pstate_supported) {
+- context->bw_ctx.bw.dcn.clk.p_state_change_support = false;
+- goto restore_dml_state;
+- }
+-
+- // ERROR: fallback #2 is supposed to always work.
++ // ERROR: fallback is supposed to always work.
+ ASSERT(false);
+
+ restore_dml_state:
+@@ -3238,8 +3226,7 @@ static bool construct(
+ goto create_fail;
+ }
+
+- dml_init_instance(&dc->dml, &dcn2_0_soc, &dcn2_0_ip, DML_PROJECT_NAVI10);
+- dml_init_instance(&dc->work_arounds.alternate_dml, &dcn2_0_soc, &dcn2_0_ip, DML_PROJECT_NAVI10v2);
++ dml_init_instance(&dc->dml, &dcn2_0_soc, &dcn2_0_ip, DML_PROJECT_NAVI10v2);
+
+ if (!dc->debug.disable_pplib_wm_range) {
+ struct pp_smu_wm_range_sets ranges = {0};
+--
+2.17.1
+