diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2821-drm-amd-display-fix-seq-issue-turn-on-clock-before-p.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2821-drm-amd-display-fix-seq-issue-turn-on-clock-before-p.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2821-drm-amd-display-fix-seq-issue-turn-on-clock-before-p.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2821-drm-amd-display-fix-seq-issue-turn-on-clock-before-p.patch new file mode 100644 index 00000000..633abada --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2821-drm-amd-display-fix-seq-issue-turn-on-clock-before-p.patch @@ -0,0 +1,74 @@ +From 8561049e802ffb286966cd9878651788313401ab Mon Sep 17 00:00:00 2001 +From: Charlene Liu <charlene.liu@amd.com> +Date: Wed, 15 Nov 2017 18:27:31 -0500 +Subject: [PATCH 2821/4131] drm/amd/display: fix seq issue: turn on clock + before programming afmt. + +Signed-off-by: Charlene Liu <charlene.liu@amd.com> +Reviewed-by: Krunoslav Kovac <Krunoslav.Kovac@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + .../drm/amd/display/dc/dce/dce_stream_encoder.c | 5 +++++ + .../amd/display/dc/dce110/dce110_hw_sequencer.c | 22 ++++++++++------------ + 2 files changed, 15 insertions(+), 12 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c b/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c +index c059355..327a0a7 100644 +--- a/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c ++++ b/drivers/gpu/drm/amd/display/dc/dce/dce_stream_encoder.c +@@ -87,6 +87,11 @@ static void dce110_update_generic_info_packet( + */ + uint32_t max_retries = 50; + ++ REG_GET(AFMT_CNTL, AFMT_AUDIO_CLOCK_EN, ®val); ++ /*we need turn on clock before programming AFMT block*/ ++ if (regval != 1) ++ REG_UPDATE(AFMT_CNTL, AFMT_AUDIO_CLOCK_EN, 1); ++ + if (REG(AFMT_VBI_PACKET_CONTROL1)) { + if (packet_index >= 8) + ASSERT(0); +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 8102d2f..e650bdc 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 +@@ -937,6 +937,16 @@ void dce110_disable_stream(struct pipe_ctx *pipe_ctx, int option) + struct dc_link *link = stream->sink->link; + struct dc *dc = pipe_ctx->stream->ctx->dc; + ++ if (dc_is_hdmi_signal(pipe_ctx->stream->signal)) ++ pipe_ctx->stream_res.stream_enc->funcs->stop_hdmi_info_packets( ++ pipe_ctx->stream_res.stream_enc); ++ ++ if (dc_is_dp_signal(pipe_ctx->stream->signal)) ++ pipe_ctx->stream_res.stream_enc->funcs->stop_dp_info_packets( ++ pipe_ctx->stream_res.stream_enc); ++ ++ pipe_ctx->stream_res.stream_enc->funcs->audio_mute_control( ++ pipe_ctx->stream_res.stream_enc, true); + if (pipe_ctx->stream_res.audio) { + pipe_ctx->stream_res.audio->funcs->az_disable(pipe_ctx->stream_res.audio); + +@@ -961,18 +971,6 @@ void dce110_disable_stream(struct pipe_ctx *pipe_ctx, int option) + */ + } + +- if (dc_is_hdmi_signal(pipe_ctx->stream->signal)) +- pipe_ctx->stream_res.stream_enc->funcs->stop_hdmi_info_packets( +- pipe_ctx->stream_res.stream_enc); +- +- if (dc_is_dp_signal(pipe_ctx->stream->signal)) +- pipe_ctx->stream_res.stream_enc->funcs->stop_dp_info_packets( +- pipe_ctx->stream_res.stream_enc); +- +- pipe_ctx->stream_res.stream_enc->funcs->audio_mute_control( +- pipe_ctx->stream_res.stream_enc, true); +- +- + /* blank at encoder level */ + if (dc_is_dp_signal(pipe_ctx->stream->signal)) { + if (pipe_ctx->stream->sink->link->connector_signal == SIGNAL_TYPE_EDP) +-- +2.7.4 + |