aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/4667-drm-amd-display-Fix-Vega10-black-screen-after-mode-c.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4667-drm-amd-display-Fix-Vega10-black-screen-after-mode-c.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/4667-drm-amd-display-Fix-Vega10-black-screen-after-mode-c.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4667-drm-amd-display-Fix-Vega10-black-screen-after-mode-c.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4667-drm-amd-display-Fix-Vega10-black-screen-after-mode-c.patch
new file mode 100644
index 00000000..49d85c5a
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4667-drm-amd-display-Fix-Vega10-black-screen-after-mode-c.patch
@@ -0,0 +1,77 @@
+From b4f0867610fc91e8fc7fc73625e438c096baeef7 Mon Sep 17 00:00:00 2001
+From: "Jerry (Fangzhi) Zuo" <Jerry.Zuo@amd.com>
+Date: Tue, 17 Jul 2018 14:34:23 -0400
+Subject: [PATCH 4667/5725] drm/amd/display: Fix Vega10 black screen after mode
+ change
+
+Do not update clocks if no stream is showing up in the context.
+
+Signed-off-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@amd.com>
+Reviewed-by: Hersen Wu <hersenxs.wu@amd.com>
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c | 2 +-
+ drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.h | 5 +++++
+ drivers/gpu/drm/amd/display/dc/dce120/dce120_hw_sequencer.c | 10 ++++++++++
+ 3 files changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+index 4cd6bc0..383b63d 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
+@@ -2661,7 +2661,7 @@ static void pplib_apply_display_requirements(
+ dc->prev_display_config = *pp_display_cfg;
+ }
+
+-static void dce110_set_bandwidth(
++void dce110_set_bandwidth(
+ struct dc *dc,
+ struct dc_state *context,
+ bool decrease_allowed)
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.h b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.h
+index f48d5a6..1782757 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.h
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.h
+@@ -64,6 +64,11 @@ void dce110_fill_display_configs(
+ const struct dc_state *context,
+ struct dm_pp_display_configuration *pp_display_cfg);
+
++void dce110_set_bandwidth(
++ struct dc *dc,
++ struct dc_state *context,
++ bool decrease_allowed);
++
+ uint32_t dce110_get_min_vblank_time_us(const struct dc_state *context);
+
+ void dp_receiver_power_ctrl(struct dc_link *link, bool on);
+diff --git a/drivers/gpu/drm/amd/display/dc/dce120/dce120_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce120/dce120_hw_sequencer.c
+index e96ff86..5853522 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce120/dce120_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/display/dc/dce120/dce120_hw_sequencer.c
+@@ -244,7 +244,16 @@ static void dce120_update_dchub(
+ dh_data->dchub_info_valid = false;
+ }
+
++static void dce120_set_bandwidth(
++ struct dc *dc,
++ struct dc_state *context,
++ bool decrease_allowed)
++{
++ if (context->stream_count <= 0)
++ return;
+
++ dce110_set_bandwidth(dc, context, decrease_allowed);
++}
+
+ void dce120_hw_sequencer_construct(struct dc *dc)
+ {
+@@ -254,5 +263,6 @@ void dce120_hw_sequencer_construct(struct dc *dc)
+ dce110_hw_sequencer_construct(dc);
+ dc->hwss.enable_display_power_gating = dce120_enable_display_power_gating;
+ dc->hwss.update_dchub = dce120_update_dchub;
++ dc->hwss.set_bandwidth = dce120_set_bandwidth;
+ }
+
+--
+2.7.4
+