]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/3.18.114/asoc-cirrus-i2s-fix-lrclk-configuration.patch
4.14-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 3.18.114 / asoc-cirrus-i2s-fix-lrclk-configuration.patch
1 From 2d534113be9a2aa532a1ae127a57e83558aed358 Mon Sep 17 00:00:00 2001
2 From: Alexander Sverdlin <alexander.sverdlin@gmail.com>
3 Date: Sat, 28 Apr 2018 22:51:38 +0200
4 Subject: ASoC: cirrus: i2s: Fix LRCLK configuration
5
6 From: Alexander Sverdlin <alexander.sverdlin@gmail.com>
7
8 commit 2d534113be9a2aa532a1ae127a57e83558aed358 upstream.
9
10 The bit responsible for LRCLK polarity is i2s_tlrs (0), not i2s_trel (2)
11 (refer to "EP93xx User's Guide").
12
13 Previously card drivers which specified SND_SOC_DAIFMT_NB_IF actually got
14 SND_SOC_DAIFMT_NB_NF, an adaptation is necessary to retain the old
15 behavior.
16
17 Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
18 Signed-off-by: Mark Brown <broonie@kernel.org>
19 Cc: stable@vger.kernel.org
20 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
21
22 ---
23 sound/soc/cirrus/edb93xx.c | 2 +-
24 sound/soc/cirrus/ep93xx-i2s.c | 8 ++++----
25 sound/soc/cirrus/snappercl15.c | 2 +-
26 3 files changed, 6 insertions(+), 6 deletions(-)
27
28 --- a/sound/soc/cirrus/edb93xx.c
29 +++ b/sound/soc/cirrus/edb93xx.c
30 @@ -67,7 +67,7 @@ static struct snd_soc_dai_link edb93xx_d
31 .cpu_dai_name = "ep93xx-i2s",
32 .codec_name = "spi0.0",
33 .codec_dai_name = "cs4271-hifi",
34 - .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_IF |
35 + .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
36 SND_SOC_DAIFMT_CBS_CFS,
37 .ops = &edb93xx_ops,
38 };
39 --- a/sound/soc/cirrus/ep93xx-i2s.c
40 +++ b/sound/soc/cirrus/ep93xx-i2s.c
41 @@ -213,24 +213,24 @@ static int ep93xx_i2s_set_dai_fmt(struct
42 switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
43 case SND_SOC_DAIFMT_NB_NF:
44 /* Negative bit clock, lrclk low on left word */
45 - clk_cfg &= ~(EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_REL);
46 + clk_cfg &= ~(EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_LRS);
47 break;
48
49 case SND_SOC_DAIFMT_NB_IF:
50 /* Negative bit clock, lrclk low on right word */
51 clk_cfg &= ~EP93XX_I2S_CLKCFG_CKP;
52 - clk_cfg |= EP93XX_I2S_CLKCFG_REL;
53 + clk_cfg |= EP93XX_I2S_CLKCFG_LRS;
54 break;
55
56 case SND_SOC_DAIFMT_IB_NF:
57 /* Positive bit clock, lrclk low on left word */
58 clk_cfg |= EP93XX_I2S_CLKCFG_CKP;
59 - clk_cfg &= ~EP93XX_I2S_CLKCFG_REL;
60 + clk_cfg &= ~EP93XX_I2S_CLKCFG_LRS;
61 break;
62
63 case SND_SOC_DAIFMT_IB_IF:
64 /* Positive bit clock, lrclk low on right word */
65 - clk_cfg |= EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_REL;
66 + clk_cfg |= EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_LRS;
67 break;
68 }
69
70 --- a/sound/soc/cirrus/snappercl15.c
71 +++ b/sound/soc/cirrus/snappercl15.c
72 @@ -72,7 +72,7 @@ static struct snd_soc_dai_link snappercl
73 .codec_dai_name = "tlv320aic23-hifi",
74 .codec_name = "tlv320aic23-codec.0-001a",
75 .platform_name = "ep93xx-i2s",
76 - .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_IF |
77 + .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
78 SND_SOC_DAIFMT_CBS_CFS,
79 .ops = &snappercl15_ops,
80 };