[alsa-devel] [PATCH] ASoC: soc-pcm: Only do snd_soc_dai_digital_mute() in hw_free()

Nicolin Chen b42378 at freescale.com
Tue Dec 3 16:26:06 CET 2013


On Tue, Dec 03, 2013 at 03:04:23PM +0000, Mark Brown wrote:
> On Tue, Dec 03, 2013 at 05:16:06PM +0800, Nicolin Chen wrote:
> 
> > @@ -689,7 +684,7 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream)
> >  	struct snd_soc_platform *platform = rtd->platform;
> >  	struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
> >  	struct snd_soc_dai *codec_dai = rtd->codec_dai;
> > -	struct snd_soc_codec *codec = rtd->codec;
> > +	bool playback = substream->stream == SNDRV_PCM_STREAM_PLAYBACK ? 1 : 0;
> 
> Please don't use the ternery operator, you could've just used the result
> of the comparison directly here.

Oh, a bad habit. Thank you for teaching me this.

> 
> >  	mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass);
> >  
> > @@ -707,7 +702,8 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream)
> >  	}
> >  
> >  	/* apply codec digital mute */
> > -	if (!codec->active)
> > +	if ((playback && codec_dai->playback_active == 1) ||
> > +			(!playback && codec_dai->capture_active == 1))
> >  		snd_soc_dai_digital_mute(codec_dai, 1, substream->stream);
> 
> This is a bit confusing to read due to the strange indentation (the
> second line is massively indented with respect to the first line for
> some reason).  This hunk also ought to be split out as a separate patch
> since it's a bug fix.

I'll refine the indentation and split the patch into two.

Thank you indeed.
Nicolin Chen





More information about the Alsa-devel mailing list