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.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
 
        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;