struct pp_smu_funcs *pp_smu = NULL;
        unsigned int i, num_audio = 1;
 
+       if (pipe_ctx->stream_res.audio && pipe_ctx->stream_res.audio->enabled == true)
+               return;
+
        if (core_dc->res_pool->pp_smu)
                pp_smu = core_dc->res_pool->pp_smu;
 
                /* TODO: audio should be per stream rather than per link */
                pipe_ctx->stream_res.stream_enc->funcs->audio_mute_control(
                                        pipe_ctx->stream_res.stream_enc, false);
+               if (pipe_ctx->stream_res.audio)
+                       pipe_ctx->stream_res.audio->enabled = true;
        }
 }
 
        struct dc *dc = pipe_ctx->stream->ctx->dc;
        struct pp_smu_funcs *pp_smu = NULL;
 
+       if (pipe_ctx->stream_res.audio && pipe_ctx->stream_res.audio->enabled == false)
+               return;
+
        pipe_ctx->stream_res.stream_enc->funcs->audio_mute_control(
                        pipe_ctx->stream_res.stream_enc, true);
        if (pipe_ctx->stream_res.audio) {
                /* dal_audio_disable_azalia_audio_jack_presence(stream->audio,
                 * stream->stream_engine_id);
                 */
+               if (pipe_ctx->stream_res.audio)
+                       pipe_ctx->stream_res.audio->enabled = false;
        }
 }