4.12-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Shawn Guo <shawn....@linaro.org>

commit a205c159f9e2db586a5ea475f4d22fa22e78fed8 upstream.

The SND_SOC_DAIFMT_MASTER bits are defined to specify the master/slave
mode for Codec, not I2S.  So the I2S master/slave mode should be flipped
according to SND_SOC_DAIFMT_MASTER bits.

Signed-off-by: Shawn Guo <shawn....@linaro.org>
Signed-off-by: Mark Brown <broo...@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

---
 sound/soc/zte/zx-i2s.c |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

--- a/sound/soc/zte/zx-i2s.c
+++ b/sound/soc/zte/zx-i2s.c
@@ -203,13 +203,15 @@ static int zx_i2s_set_fmt(struct snd_soc
 
        switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
        case SND_SOC_DAIFMT_CBM_CFM:
-               i2s->master = 1;
-               val |= ZX_I2S_TIMING_MAST;
-               break;
-       case SND_SOC_DAIFMT_CBS_CFS:
+               /* Codec is master, and I2S is slave. */
                i2s->master = 0;
                val |= ZX_I2S_TIMING_SLAVE;
                break;
+       case SND_SOC_DAIFMT_CBS_CFS:
+               /* Codec is slave, and I2S is master. */
+               i2s->master = 1;
+               val |= ZX_I2S_TIMING_MAST;
+               break;
        default:
                dev_err(cpu_dai->dev, "Unknown master/slave format\n");
                return -EINVAL;


Reply via email to