aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3411-drm-amd-display-fix-dcn-specific-clk_mgr-init_clocks.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3411-drm-amd-display-fix-dcn-specific-clk_mgr-init_clocks.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3411-drm-amd-display-fix-dcn-specific-clk_mgr-init_clocks.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3411-drm-amd-display-fix-dcn-specific-clk_mgr-init_clocks.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3411-drm-amd-display-fix-dcn-specific-clk_mgr-init_clocks.patch
new file mode 100644
index 00000000..85dfa045
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3411-drm-amd-display-fix-dcn-specific-clk_mgr-init_clocks.patch
@@ -0,0 +1,63 @@
+From 234148db1b2013476a71e751e99471d8da621871 Mon Sep 17 00:00:00 2001
+From: Martin Leung <martin.leung@amd.com>
+Date: Sun, 28 Jul 2019 11:09:11 -0400
+Subject: [PATCH 3411/4256] drm/amd/display: fix dcn-specific clk_mgr
+ init_clocks
+
+[Why]
+underflow seen on certain monitor setups caused by making dcnxx_init_hw
+generic
+
+[How]
+by moving dcn20_init_hw into dcn10, we added a dcn-specific clk_mgr
+init (dc->clk_mgr->funcs->init_clocks()). Thus, put old clk_mgr
+memset in an else statement so both memsets don't get set
+
+Signed-off-by: Martin Leung <martin.leung@amd.com>
+Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c | 6 ++++++
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 2 --
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c
+index ad1478378f16..d00ee9fa04e4 100644
+--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c
++++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c
+@@ -31,6 +31,11 @@
+ #include "rv1_clk_mgr_vbios_smu.h"
+ #include "rv1_clk_mgr_clk.h"
+
++void rv1_init_clocks(struct clk_mgr *clk_mgr)
++{
++ memset(&(clk_mgr->clks), 0, sizeof(struct dc_clocks));
++}
++
+ static int rv1_determine_dppclk_threshold(struct clk_mgr_internal *clk_mgr, struct dc_clocks *new_clocks)
+ {
+ bool request_dpp_div = new_clocks->dispclk_khz > new_clocks->dppclk_khz;
+@@ -234,6 +239,7 @@ static void rv1_enable_pme_wa(struct clk_mgr *clk_mgr_base)
+ }
+
+ static struct clk_mgr_funcs rv1_clk_funcs = {
++ .init_clocks = rv1_init_clocks,
+ .get_dp_ref_clk_frequency = dce12_get_dp_ref_freq_khz,
+ .update_clocks = rv1_update_clocks,
+ .enable_pme_wa = rv1_enable_pme_wa,
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
+index cfe8331c4b46..167bd6e92afa 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
+@@ -1290,8 +1290,6 @@ static void dcn10_init_hw(struct dc *dc)
+ }
+
+ dc->hwss.enable_power_gating_plane(dc->hwseq, true);
+-
+- memset(&dc->clk_mgr->clks, 0, sizeof(dc->clk_mgr->clks));
+ }
+
+ static void dcn10_reset_hw_ctx_wrap(
+--
+2.17.1
+