ASoC: compress: Only mute playback streams
Otherwise capture activity on a compressed DAI would mute any playback on the same DAI. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Vinod Koul <vinod.koul@intel.com> Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
This commit is contained in:
Родитель
1f88eb0f06
Коммит
e38b9b7478
|
@ -116,13 +116,12 @@ static int soc_compr_free(struct snd_compr_stream *cstream)
|
|||
if (cstream->direction == SND_COMPRESS_PLAYBACK) {
|
||||
cpu_dai->playback_active--;
|
||||
codec_dai->playback_active--;
|
||||
snd_soc_dai_digital_mute(codec_dai, 1);
|
||||
} else {
|
||||
cpu_dai->capture_active--;
|
||||
codec_dai->capture_active--;
|
||||
}
|
||||
|
||||
snd_soc_dai_digital_mute(codec_dai, 1);
|
||||
|
||||
cpu_dai->active--;
|
||||
codec_dai->active--;
|
||||
codec->active--;
|
||||
|
@ -179,10 +178,16 @@ static int soc_compr_trigger(struct snd_compr_stream *cstream, int cmd)
|
|||
goto out;
|
||||
}
|
||||
|
||||
if (cmd == SNDRV_PCM_TRIGGER_START)
|
||||
snd_soc_dai_digital_mute(codec_dai, 0);
|
||||
else if (cmd == SNDRV_PCM_TRIGGER_STOP)
|
||||
snd_soc_dai_digital_mute(codec_dai, 1);
|
||||
if (cstream->direction == SND_COMPRESS_PLAYBACK) {
|
||||
switch (cmd) {
|
||||
case SNDRV_PCM_TRIGGER_START:
|
||||
snd_soc_dai_digital_mute(codec_dai, 0);
|
||||
break;
|
||||
case SNDRV_PCM_TRIGGER_STOP:
|
||||
snd_soc_dai_digital_mute(codec_dai, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
mutex_unlock(&rtd->pcm_mutex);
|
||||
|
|
Загрузка…
Ссылка в новой задаче