ASoC: fsl_ssi: call _fsl_ssi_set_dai_fmt() just once in AC'97 mode
authorMaciej S. Szmigiero <mail@maciej.szmigiero.name>
Tue, 21 Nov 2017 23:55:14 +0000 (00:55 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 29 Nov 2017 10:39:27 +0000 (10:39 +0000)
In AC'97 mode we configure and start SSI RX / TX on probe path via
a call to _fsl_ssi_set_dai_fmt() function.
We don't need to call this function again later and in fact don't want to
do it since this function temporarily sets STCR, SRCR and SCR to some
intermediate values.

Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_ssi.c

index 9e97a05..939d1b8 100644 (file)
@@ -1079,6 +1079,9 @@ static int fsl_ssi_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
 {
        struct fsl_ssi_private *ssi_private = snd_soc_dai_get_drvdata(cpu_dai);
 
+       if (fsl_ssi_is_ac97(ssi_private))
+               return 0;
+
        return _fsl_ssi_set_dai_fmt(cpu_dai->dev, ssi_private, fmt);
 }