summaryrefslogtreecommitdiff
path: root/sound/soc/soc-pcm.c
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2020-03-06 10:10:04 +0900
committerMark Brown <broonie@kernel.org>2020-03-06 14:47:24 +0000
commit67ad877757cea329f74c1e169ec54131c3f223ce (patch)
treeb401a492709f68e8bddbb238f78402a6a3e22f92 /sound/soc/soc-pcm.c
parent8a01fbf0ac115268293d8764850edc0628a58e4f (diff)
downloadlwn-67ad877757cea329f74c1e169ec54131c3f223ce.tar.gz
lwn-67ad877757cea329f74c1e169ec54131c3f223ce.zip
ASoC: soc-pcm: check DAI's activity more simply
soc_pcm_hw_free() want to call snd_soc_dai_digital_mute() if it was last user of Playback or Capture. bool playback = substream->stream == SNDRV_PCM_STREAM_PLAYBACK; int playback_active = dai->stream_active[SNDRV_PCM_STREAM_PLAYBACK]; int capture_active = dai->stream_active[SNDRV_PCM_STREAM_CAPTURE]; if ((playback && playback_active == 1) || (!playback && capture_active == 1)) snd_soc_dai_digital_mute(...) But it is same as int active = dai->stream_active[substream->stream]; if (active == 1) snd_soc_dai_digital_mute(...) This patch simplify the code. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87k13yp9ub.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-pcm.c')
-rw-r--r--sound/soc/soc-pcm.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 7d787e0966f3..af0e17bfeeab 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -1202,7 +1202,6 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream)
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_dai *cpu_dai;
struct snd_soc_dai *codec_dai;
- bool playback = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
int i;
mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
@@ -1226,11 +1225,9 @@ 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];
+ int active = codec_dai->stream_active[substream->stream];
- if ((playback && playback_active == 1) ||
- (!playback && capture_active == 1))
+ if (active == 1)
snd_soc_dai_digital_mute(codec_dai, 1,
substream->stream);
}