ASoC: Intel: Skylake: Don't reset pass-through pipe in BE prepare
authorJeeja KP <jeeja.kp@intel.com>
Tue, 10 Jan 2017 12:27:46 +0000 (17:57 +0530)
committerMark Brown <broonie@kernel.org>
Thu, 19 Jan 2017 15:43:03 +0000 (15:43 +0000)
When pipe is pass-through, BE and FE modules are defined inside
a pipe, reset of pipe will be done in FE DAI prepare. So don't
reset in the BE prepare.

Signed-off-by: Jeeja KP <jeeja.kp@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/skylake/skl-pcm.c

index 10fa10df4e5716db7e780d003797f55b3988bca6..aefcfca810f422451775fe6e062b83b51e428c3a 100644 (file)
@@ -572,8 +572,8 @@ static int skl_link_pcm_prepare(struct snd_pcm_substream *substream,
 
        /* In case of XRUN recovery, reset the FW pipe to clean state */
        mconfig = skl_tplg_be_get_cpr_module(dai, substream->stream);
-       if (mconfig && (substream->runtime->status->state ==
-                                       SNDRV_PCM_STATE_XRUN))
+       if (mconfig && !mconfig->pipe->passthru &&
+               (substream->runtime->status->state == SNDRV_PCM_STATE_XRUN))
                skl_reset_pipe(skl->skl_sst, mconfig->pipe);
 
        return 0;