summaryrefslogtreecommitdiff
path: root/sound/soc/zte
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@linaro.org>2017-06-17 22:25:28 +0800
committerMark Brown <broonie@kernel.org>2017-06-19 17:19:39 +0100
commita205c159f9e2db586a5ea475f4d22fa22e78fed8 (patch)
tree55e18a8b812a7f1c0edfae06e7c575bfadf26532 /sound/soc/zte
parent6a9a440681f2170b9a07b1cf28c6aa7532c307c8 (diff)
ASoC: zx-i2s: flip I2S master/slave mode
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
Diffstat (limited to 'sound/soc/zte')
-rw-r--r--sound/soc/zte/zx-i2s.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sound/soc/zte/zx-i2s.c b/sound/soc/zte/zx-i2s.c
index a7f7a56e0a2d..8bbad1d72bc5 100644
--- 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_dai *cpu_dai, unsigned int fmt)
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;