]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm/amd/display: skip audio setup when audio stream is enabled
authorzhikzhai <zhikai.zhai@amd.com>
Fri, 26 Aug 2022 11:44:50 +0000 (19:44 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 12 Oct 2022 07:51:25 +0000 (09:51 +0200)
[ Upstream commit 65fbfb02c2734cacffec5e3f492e1b4f1dabcf98 ]

[why]
We have minimal pipe split transition method to avoid pipe
allocation outage.However, this method will invoke audio setup
which cause audio output stuck once pipe reallocate.

[how]
skip audio setup for pipelines which audio stream has been enabled

Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
Acked-by: Wayne Lin <wayne.lin@amd.com>
Signed-off-by: zhikzhai <zhikai.zhai@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c

index aee31c785aa9fc7568f6f3c6e11622a01b98b6e0..4f0ea50eaa839e88e7fa8a718bce7629f12c0ce2 100644 (file)
@@ -2165,7 +2165,8 @@ static void dce110_setup_audio_dto(
                        continue;
                if (pipe_ctx->stream->signal != SIGNAL_TYPE_HDMI_TYPE_A)
                        continue;
-               if (pipe_ctx->stream_res.audio != NULL) {
+               if (pipe_ctx->stream_res.audio != NULL &&
+                       pipe_ctx->stream_res.audio->enabled == false) {
                        struct audio_output audio_output;
 
                        build_audio_output(context, pipe_ctx, &audio_output);
@@ -2207,7 +2208,8 @@ static void dce110_setup_audio_dto(
                        if (!dc_is_dp_signal(pipe_ctx->stream->signal))
                                continue;
 
-                       if (pipe_ctx->stream_res.audio != NULL) {
+                       if (pipe_ctx->stream_res.audio != NULL &&
+                               pipe_ctx->stream_res.audio->enabled == false) {
                                struct audio_output audio_output;
 
                                build_audio_output(context, pipe_ctx, &audio_output);