|
Jiri Slaby |
9cb590 |
From: Shawn Guo <shawn.guo@linaro.org>
|
|
Jiri Slaby |
9cb590 |
Date: Sat, 17 Jun 2017 22:25:28 +0800
|
|
Jiri Slaby |
9cb590 |
Subject: [PATCH] ASoC: zx-i2s: flip I2S master/slave mode
|
|
Jiri Slaby |
9cb590 |
References: bnc#1060662
|
|
Jiri Slaby |
9cb590 |
Patch-mainline: 4.12.4
|
|
Jiri Slaby |
9cb590 |
Git-commit: a205c159f9e2db586a5ea475f4d22fa22e78fed8
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
commit a205c159f9e2db586a5ea475f4d22fa22e78fed8 upstream.
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
The SND_SOC_DAIFMT_MASTER bits are defined to specify the master/slave
|
|
Jiri Slaby |
9cb590 |
mode for Codec, not I2S. So the I2S master/slave mode should be flipped
|
|
Jiri Slaby |
9cb590 |
according to SND_SOC_DAIFMT_MASTER bits.
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
|
|
Jiri Slaby |
9cb590 |
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Jiri Slaby |
9cb590 |
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Jiri Slaby |
9cb590 |
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
|
Jiri Slaby |
9cb590 |
---
|
|
Jiri Slaby |
9cb590 |
sound/soc/zte/zx-i2s.c | 10 ++++++----
|
|
Jiri Slaby |
9cb590 |
1 file changed, 6 insertions(+), 4 deletions(-)
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
diff --git a/sound/soc/zte/zx-i2s.c b/sound/soc/zte/zx-i2s.c
|
|
Jiri Slaby |
9cb590 |
index a865f37c2a56..580902fd9030 100644
|
|
Jiri Slaby |
9cb590 |
--- a/sound/soc/zte/zx-i2s.c
|
|
Jiri Slaby |
9cb590 |
+++ b/sound/soc/zte/zx-i2s.c
|
|
Jiri Slaby |
9cb590 |
@@ -203,13 +203,15 @@ static int zx_i2s_set_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
|
|
Jiri Slaby |
9cb590 |
|
|
Jiri Slaby |
9cb590 |
switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
|
|
Jiri Slaby |
9cb590 |
case SND_SOC_DAIFMT_CBM_CFM:
|
|
Jiri Slaby |
9cb590 |
- i2s->master = 1;
|
|
Jiri Slaby |
9cb590 |
- val |= ZX_I2S_TIMING_MAST;
|
|
Jiri Slaby |
9cb590 |
- break;
|
|
Jiri Slaby |
9cb590 |
- case SND_SOC_DAIFMT_CBS_CFS:
|
|
Jiri Slaby |
9cb590 |
+ /* Codec is master, and I2S is slave. */
|
|
Jiri Slaby |
9cb590 |
i2s->master = 0;
|
|
Jiri Slaby |
9cb590 |
val |= ZX_I2S_TIMING_SLAVE;
|
|
Jiri Slaby |
9cb590 |
break;
|
|
Jiri Slaby |
9cb590 |
+ case SND_SOC_DAIFMT_CBS_CFS:
|
|
Jiri Slaby |
9cb590 |
+ /* Codec is slave, and I2S is master. */
|
|
Jiri Slaby |
9cb590 |
+ i2s->master = 1;
|
|
Jiri Slaby |
9cb590 |
+ val |= ZX_I2S_TIMING_MAST;
|
|
Jiri Slaby |
9cb590 |
+ break;
|
|
Jiri Slaby |
9cb590 |
default:
|
|
Jiri Slaby |
9cb590 |
dev_err(cpu_dai->dev, "Unknown master/slave format\n");
|
|
Jiri Slaby |
9cb590 |
return -EINVAL;
|
|
Jiri Slaby |
9cb590 |
--
|
|
Jiri Slaby |
9cb590 |
2.14.2
|
|
Jiri Slaby |
9cb590 |
|