Hi Mark > @@ -1225,15 +1224,10 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream) > } > > /* apply codec digital mute */ > - for_each_rtd_codec_dai(rtd, i, codec_dai) { > - int playback_active = codec_dai->stream_active[SNDRV_PCM_STREAM_PLAYBACK]; > - int capture_active = codec_dai->stream_active[SNDRV_PCM_STREAM_CAPTURE]; > - > - if ((playback && playback_active == 1) || > - (!playback && capture_active == 1)) > + for_each_rtd_codec_dai(rtd, i, codec_dai) > + if (codec_dai->active) > snd_soc_dai_digital_mute(codec_dai, 1, > substream->stream); I noticed that it calls snd_soc_dai_digital_mute(xxx, substream->stream). This means, it want to call mute for each Playback/Capture "last user". This patch was total wrong. Mark, [6/8] is wrong. maybe I need to reconsider [7/8]. Can you please ignore these ? Please let me know if you need v3 Thank you for your help !! Best regards --- Kuninori Morimoto