[alsa-devel] [PATCH] ASoC: soc-pcm: Use valid condition for snd_soc_dai_digital_mute() in hw_free()

Nicolin Chen b42378 at freescale.com
Mon Dec 2 11:39:48 CET 2013


On Mon, Dec 02, 2013 at 11:05:31AM +0100, Takashi Iwai wrote:
> 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).
> 

Thank you for the comments. I didn't look at the whole board.
Please Drop this patch.

Thank you.
Nicolin Chen

> 
> 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