aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3080-drm-amd-display-populate-last-calculated-bb-state-wi.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3080-drm-amd-display-populate-last-calculated-bb-state-wi.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3080-drm-amd-display-populate-last-calculated-bb-state-wi.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3080-drm-amd-display-populate-last-calculated-bb-state-wi.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3080-drm-amd-display-populate-last-calculated-bb-state-wi.patch
new file mode 100644
index 00000000..efec6b66
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3080-drm-amd-display-populate-last-calculated-bb-state-wi.patch
@@ -0,0 +1,39 @@
+From 2d0db3d83f6b28f613bf5546145f5b57a5b83aca Mon Sep 17 00:00:00 2001
+From: Jun Lei <Jun.Lei@amd.com>
+Date: Wed, 3 Jul 2019 16:52:38 -0400
+Subject: [PATCH 3080/4256] drm/amd/display: populate last calculated bb state
+ with max clocks
+
+[why]
+update_bounding_box calculates intermediate bb states based on clock relationship
+however, the last state doesn't need to maintain a minimum relationship, but should
+actually contain maximum of every clock. otherwise maximum clocks are not usable
+
+[how]
+once the calculated bb is built, override the last state with max values
+
+Signed-off-by: Jun Lei <Jun.Lei@amd.com>
+Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+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 296bc7e4c4a2..193270ba60e6 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
+@@ -2746,6 +2746,10 @@ static void update_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_
+ num_calculated_states++;
+ }
+
++ calculated_states[num_calculated_states - 1].socclk_mhz = max_clocks->socClockInKhz / 1000;
++ calculated_states[num_calculated_states - 1].fabricclk_mhz = max_clocks->socClockInKhz / 1000;
++ calculated_states[num_calculated_states - 1].dcfclk_mhz = max_clocks->dcfClockInKhz / 1000;
++
+ memcpy(bb->clock_limits, calculated_states, sizeof(bb->clock_limits));
+ bb->num_states = num_calculated_states;
+
+--
+2.17.1
+