From: Eric Yang <[email protected]>

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 <[email protected]>
Reviewed-by: Tony Cheng <[email protected]>
Acked-by: Harry Wentland <[email protected]>
---
 .../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 0384aefd79b6..4adb2d311d4e 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.14.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to