diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2017-06-17 22:25:28 +0800 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-06-19 17:19:39 +0100 |
commit | a205c159f9e2db586a5ea475f4d22fa22e78fed8 (patch) | |
tree | 55e18a8b812a7f1c0edfae06e7c575bfadf26532 /sound | |
parent | 6a9a440681f2170b9a07b1cf28c6aa7532c307c8 (diff) | |
download | linux-a205c159f9e2db586a5ea475f4d22fa22e78fed8.tar.bz2 |
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')
-rw-r--r-- | sound/soc/zte/zx-i2s.c | 10 |
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; |