|
|
@@ -1000,7 +1000,7 @@ void dce110_enable_audio_stream(struct pipe_ctx *pipe_ctx)
|
|
|
|
|
|
pipe_ctx->stream_res.audio->funcs->az_enable(pipe_ctx->stream_res.audio);
|
|
|
|
|
|
- if (num_audio == 1 && pp_smu != NULL && pp_smu->set_pme_wa_enable != NULL)
|
|
|
+ if (num_audio >= 1 && pp_smu != NULL && pp_smu->set_pme_wa_enable != NULL)
|
|
|
/*this is the first audio. apply the PME w/a in order to wake AZ from D3*/
|
|
|
pp_smu->set_pme_wa_enable(&pp_smu->pp_smu);
|
|
|
/* un-mute audio */
|
|
|
@@ -1017,6 +1017,8 @@ void dce110_disable_audio_stream(struct pipe_ctx *pipe_ctx, int option)
|
|
|
pipe_ctx->stream_res.stream_enc->funcs->audio_mute_control(
|
|
|
pipe_ctx->stream_res.stream_enc, true);
|
|
|
if (pipe_ctx->stream_res.audio) {
|
|
|
+ struct pp_smu_funcs_rv *pp_smu = dc->res_pool->pp_smu;
|
|
|
+
|
|
|
if (option != KEEP_ACQUIRED_RESOURCE ||
|
|
|
!dc->debug.az_endpoint_mute_only) {
|
|
|
/*only disalbe az_endpoint if power down or free*/
|
|
|
@@ -1036,6 +1038,9 @@ void dce110_disable_audio_stream(struct pipe_ctx *pipe_ctx, int option)
|
|
|
update_audio_usage(&dc->current_state->res_ctx, dc->res_pool, pipe_ctx->stream_res.audio, false);
|
|
|
pipe_ctx->stream_res.audio = NULL;
|
|
|
}
|
|
|
+ if (pp_smu != NULL && pp_smu->set_pme_wa_enable != NULL)
|
|
|
+ /*this is the first audio. apply the PME w/a in order to wake AZ from D3*/
|
|
|
+ pp_smu->set_pme_wa_enable(&pp_smu->pp_smu);
|
|
|
|
|
|
/* TODO: notify audio driver for if audio modes list changed
|
|
|
* add audio mode list change flag */
|