diff options
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.patch | 57 |
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 + |