aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3634-drm-amd-display-fix-missing-az-disable-in-reset-back.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3634-drm-amd-display-fix-missing-az-disable-in-reset-back.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3634-drm-amd-display-fix-missing-az-disable-in-reset-back.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3634-drm-amd-display-fix-missing-az-disable-in-reset-back.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3634-drm-amd-display-fix-missing-az-disable-in-reset-back.patch
new file mode 100644
index 00000000..ee320f16
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3634-drm-amd-display-fix-missing-az-disable-in-reset-back.patch
@@ -0,0 +1,49 @@
+From 7edd7a3b61d93b7c5cdf68508966aa48a74fffcb Mon Sep 17 00:00:00 2001
+From: Eric Yang <Eric.Yang2@amd.com>
+Date: Thu, 15 Feb 2018 15:55:31 -0500
+Subject: [PATCH 3634/4131] drm/amd/display: fix missing az disable in reset
+ backend
+
+Optimization in reset backend skips disable stream if it is
+already done in dc_stream_set_dpms. However that path does
+not disable az in order to prevent audio from toggling
+between internal and external displays. This still need to
+be done.
+
+Signed-off-by: Eric Yang <Eric.Yang2@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+---
+ .../gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+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 0384aef..4adb2d3 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
+@@ -536,6 +536,22 @@ static void reset_back_end_for_pipe(
+ /* DPMS may already disable */
+ if (!pipe_ctx->stream->dpms_off)
+ core_link_disable_stream(pipe_ctx, FREE_ACQUIRED_RESOURCE);
++ else if (pipe_ctx->stream_res.audio) {
++ /*
++ * if stream is already disabled outside of commit streams path,
++ * audio disable was skipped. Need to do it here
++ */
++ pipe_ctx->stream_res.audio->funcs->az_disable(pipe_ctx->stream_res.audio);
++
++ if (dc->caps.dynamic_audio == true) {
++ /*we have to dynamic arbitrate the audio endpoints*/
++ pipe_ctx->stream_res.audio = NULL;
++ /*we free the resource, need reset is_audio_acquired*/
++ update_audio_usage(&dc->current_state->res_ctx, dc->res_pool, pipe_ctx->stream_res.audio, false);
++ }
++
++ }
++
+ }
+
+ /* by upper caller loop, parent pipe: pipe0, will be reset last.
+--
+2.7.4
+