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