[alsa-devel] [PATCH] ASoC: soc-pcm: Use valid condition for snd_soc_dai_digital_mute() in hw_free()
Takashi Iwai
tiwai at suse.de
Mon Dec 2 11:05:31 CET 2013
At Mon, 2 Dec 2013 17:34:34 +0800,
Nicolin Chen wrote:
>
> The snd_soc_dai_digital_mute() here will be never executed because we only
> decrease codec->active in snd_soc_close(). Thus correct it.
A couple of minor problems by this approach:
- snd_soc_dai_digital_mute() will be called twice in the normal PCM
close path.
- In full duplex mode where both playback/capture streams share the
same codec, one of the directions won't be handled correctly because
codec->active is incremented/decremented twice (once for each
direction).
Takashi
>
> Signed-off-by: Nicolin Chen <b42378 at freescale.com>
> ---
> sound/soc/soc-pcm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
> index 22af038..7d19117 100644
> --- a/sound/soc/soc-pcm.c
> +++ b/sound/soc/soc-pcm.c
> @@ -689,7 +689,7 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream)
> }
>
> /* apply codec digital mute */
> - if (!codec->active)
> + if (codec->active == 1)
> snd_soc_dai_digital_mute(codec_dai, 1, substream->stream);
>
> /* free any machine hw params */
> --
> 1.8.4
>
>
More information about the Alsa-devel
mailing list