Merge tag 'late-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[firefly-linux-kernel-4.4.55.git] / sound / soc / soc-pcm.c
index cf191e6aebbe1d1bfeb9dd511d0fe9b5e5bd3bbd..73bb8eefa4913d2b77b468a5dabe22566c61687b 100644 (file)
@@ -383,8 +383,7 @@ static int soc_pcm_close(struct snd_pcm_substream *substream)
        /* Muting the DAC suppresses artifacts caused during digital
         * shutdown, for example from stopping clocks.
         */
-       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-               snd_soc_dai_digital_mute(codec_dai, 1);
+       snd_soc_dai_digital_mute(codec_dai, 1, substream->stream);
 
        if (cpu_dai->driver->ops->shutdown)
                cpu_dai->driver->ops->shutdown(substream, cpu_dai);
@@ -488,7 +487,7 @@ static int soc_pcm_prepare(struct snd_pcm_substream *substream)
        snd_soc_dapm_stream_event(rtd, substream->stream,
                        SND_SOC_DAPM_STREAM_START);
 
-       snd_soc_dai_digital_mute(codec_dai, 0);
+       snd_soc_dai_digital_mute(codec_dai, 0, substream->stream);
 
 out:
        mutex_unlock(&rtd->pcm_mutex);
@@ -586,7 +585,7 @@ static int soc_pcm_hw_free(struct snd_pcm_substream *substream)
 
        /* apply codec digital mute */
        if (!codec->active)
-               snd_soc_dai_digital_mute(codec_dai, 1);
+               snd_soc_dai_digital_mute(codec_dai, 1, substream->stream);
 
        /* free any machine hw params */
        if (rtd->dai_link->ops && rtd->dai_link->ops->hw_free)
@@ -1729,20 +1728,16 @@ static int dpcm_run_update_startup(struct snd_soc_pcm_runtime *fe, int stream)
 
        /* startup must always be called for new BEs */
        ret = dpcm_be_dai_startup(fe, stream);
-       if (ret < 0) {
+       if (ret < 0)
                goto disconnect;
-               return ret;
-       }
 
        /* keep going if FE state is > open */
        if (fe->dpcm[stream].state == SND_SOC_DPCM_STATE_OPEN)
                return 0;
 
        ret = dpcm_be_dai_hw_params(fe, stream);
-       if (ret < 0) {
+       if (ret < 0)
                goto close;
-               return ret;
-       }
 
        /* keep going if FE state is > hw_params */
        if (fe->dpcm[stream].state == SND_SOC_DPCM_STATE_HW_PARAMS)
@@ -1750,10 +1745,8 @@ static int dpcm_run_update_startup(struct snd_soc_pcm_runtime *fe, int stream)
 
 
        ret = dpcm_be_dai_prepare(fe, stream);
-       if (ret < 0) {
+       if (ret < 0)
                goto hw_free;
-               return ret;
-       }
 
        /* run the stream event for each BE */
        dpcm_dapm_stream_event(fe, stream, SND_SOC_DAPM_STREAM_NOP);