ASoC: dpcm: symmetry constraint on FE substream
authorKai Chieh Chuang <kaichieh.chuang@mediatek.com>
Mon, 28 May 2018 02:18:19 +0000 (10:18 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 29 May 2018 13:56:38 +0000 (14:56 +0100)
We should set BE symmetric constraint on FE substream.

in case one BE is used by two FE1/FE2,
the first BE runtime will use FE1's substream->runtime.
hence the FE1's will be constrained by BE symmetry property.

Though, second FE2 call dpcm_apply_symmetry,
the be_substream->runtime == FE1's substream->runtime.
The FE2's substream->runtime will not be constrained
by BE's symmetry property.

Signed-off-by: KaiChieh Chuang <kaichieh.chuang@mediatek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-pcm.c

index 2d846b3dd70ca1337ec8d62b2dc41a38858afcc2..0e2b2c6c60bd1deb238e91fb5e8a9babe40bf52b 100644 (file)
@@ -1779,14 +1779,15 @@ static int dpcm_apply_symmetry(struct snd_pcm_substream *fe_substream,
 
                /* Symmetry only applies if we've got an active stream. */
                if (rtd->cpu_dai->active) {
-                       err = soc_pcm_apply_symmetry(be_substream, rtd->cpu_dai);
+                       err = soc_pcm_apply_symmetry(fe_substream,
+                                                    rtd->cpu_dai);
                        if (err < 0)
                                return err;
                }
 
                for (i = 0; i < rtd->num_codecs; i++) {
                        if (rtd->codec_dais[i]->active) {
-                               err = soc_pcm_apply_symmetry(be_substream,
+                               err = soc_pcm_apply_symmetry(fe_substream,
                                                             rtd->codec_dais[i]);
                                if (err < 0)
                                        return err;