aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2821-drm-amd-display-fix-seq-issue-turn-on-clock-before-p.patch
diff options
context:
space:
mode:
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.patch74
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, &regval);
++ /*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
+