aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4260-drm-amd-display-Do-not-call-update-bounding-box-on-d.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4260-drm-amd-display-Do-not-call-update-bounding-box-on-d.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4260-drm-amd-display-Do-not-call-update-bounding-box-on-d.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4260-drm-amd-display-Do-not-call-update-bounding-box-on-d.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4260-drm-amd-display-Do-not-call-update-bounding-box-on-d.patch
new file mode 100644
index 00000000..fedc85cf
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4260-drm-amd-display-Do-not-call-update-bounding-box-on-d.patch
@@ -0,0 +1,57 @@
+From 0caa5e8f858285f13345c2898ca9c9b680b978a6 Mon Sep 17 00:00:00 2001
+From: Sung Lee <sung.lee@amd.com>
+Date: Mon, 7 Oct 2019 12:05:34 -0400
+Subject: [PATCH 4260/4736] drm/amd/display: Do not call update bounding box on
+ dc create
+
+[Why]
+In Hybrid Graphics, dcn2_1_soc struct stays alive through PnP.
+This causes an issue on dc init where dcn2_1_soc which has been
+updated by update_bw_bounding_box gets put into dml->soc.
+As update_bw_bounding_box is currently incorrect for dcn2.1,
+this makes dml calculations fail due to incorrect parameters,
+leading to a crash on PnP.
+
+[How]
+Comment out update_bw_bounding_box call for now.
+
+Signed-off-by: Sung Lee <sung.lee@amd.com>
+Reviewed-by: Eric Yang <eric.yang2@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
+index 51f23680244a..910c850701af 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
+@@ -1336,6 +1336,12 @@ struct display_stream_compressor *dcn21_dsc_create(
+
+ static void update_bw_bounding_box(struct dc *dc, struct clk_bw_params *bw_params)
+ {
++ /*
++ TODO: Fix this function to calcualte correct values.
++ There are known issues with this function currently
++ that will need to be investigated. Use hardcoded known good values for now.
++
++
+ struct dcn21_resource_pool *pool = TO_DCN21_RES_POOL(dc->res_pool);
+ struct clk_limit_table *clk_table = &bw_params->clk_table;
+ int i;
+@@ -1350,11 +1356,11 @@ static void update_bw_bounding_box(struct dc *dc, struct clk_bw_params *bw_param
+ dcn2_1_soc.clock_limits[i].dcfclk_mhz = clk_table->entries[i].dcfclk_mhz;
+ dcn2_1_soc.clock_limits[i].fabricclk_mhz = clk_table->entries[i].fclk_mhz;
+ dcn2_1_soc.clock_limits[i].socclk_mhz = clk_table->entries[i].socclk_mhz;
+- /* This is probably wrong, TODO: find correct calculation */
+ dcn2_1_soc.clock_limits[i].dram_speed_mts = clk_table->entries[i].memclk_mhz * 16 / 1000;
+ }
+ dcn2_1_soc.clock_limits[i] = dcn2_1_soc.clock_limits[i - i];
+ dcn2_1_soc.num_states = i;
++ */
+ }
+
+ /* Temporary Place holder until we can get them from fuse */
+--
+2.17.1
+