]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
ASoC: cirrus: i2s: Fix LRCLK configuration
authorAlexander Sverdlin <alexander.sverdlin@gmail.com>
Sat, 28 Apr 2018 20:51:38 +0000 (22:51 +0200)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Mon, 14 Jan 2019 09:28:55 +0000 (09:28 +0000)
BugLink: http://bugs.launchpad.net/bugs/1807469
commit 2d534113be9a2aa532a1ae127a57e83558aed358 upstream.

The bit responsible for LRCLK polarity is i2s_tlrs (0), not i2s_trel (2)
(refer to "EP93xx User's Guide").

Previously card drivers which specified SND_SOC_DAIFMT_NB_IF actually got
SND_SOC_DAIFMT_NB_NF, an adaptation is necessary to retain the old
behavior.

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
sound/soc/cirrus/edb93xx.c
sound/soc/cirrus/ep93xx-i2s.c
sound/soc/cirrus/snappercl15.c

index c53bd6f2c2d7f6179420c0f6db37b8d1b41c1838..3d011abaa2660a7cc92b4690006c107352862007 100644 (file)
@@ -67,7 +67,7 @@ static struct snd_soc_dai_link edb93xx_dai = {
        .cpu_dai_name   = "ep93xx-i2s",
        .codec_name     = "spi0.0",
        .codec_dai_name = "cs4271-hifi",
-       .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_IF |
+       .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                          SND_SOC_DAIFMT_CBS_CFS,
        .ops            = &edb93xx_ops,
 };
index 934f8aefdd90b8f94beda83dc82393d4091e4aec..38c240c9704174dd1c25b6b6f4eefb191fcd9a9c 100644 (file)
@@ -213,24 +213,24 @@ static int ep93xx_i2s_set_dai_fmt(struct snd_soc_dai *cpu_dai,
        switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
        case SND_SOC_DAIFMT_NB_NF:
                /* Negative bit clock, lrclk low on left word */
-               clk_cfg &= ~(EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_REL);
+               clk_cfg &= ~(EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_LRS);
                break;
 
        case SND_SOC_DAIFMT_NB_IF:
                /* Negative bit clock, lrclk low on right word */
                clk_cfg &= ~EP93XX_I2S_CLKCFG_CKP;
-               clk_cfg |= EP93XX_I2S_CLKCFG_REL;
+               clk_cfg |= EP93XX_I2S_CLKCFG_LRS;
                break;
 
        case SND_SOC_DAIFMT_IB_NF:
                /* Positive bit clock, lrclk low on left word */
                clk_cfg |= EP93XX_I2S_CLKCFG_CKP;
-               clk_cfg &= ~EP93XX_I2S_CLKCFG_REL;
+               clk_cfg &= ~EP93XX_I2S_CLKCFG_LRS;
                break;
 
        case SND_SOC_DAIFMT_IB_IF:
                /* Positive bit clock, lrclk low on right word */
-               clk_cfg |= EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_REL;
+               clk_cfg |= EP93XX_I2S_CLKCFG_CKP | EP93XX_I2S_CLKCFG_LRS;
                break;
        }
 
index 2334ec19e7ebb74d4e9b60db5fe37bb4abf6a10f..11ff7b2672b2250318ea17652054619bb7fb897f 100644 (file)
@@ -72,7 +72,7 @@ static struct snd_soc_dai_link snappercl15_dai = {
        .codec_dai_name = "tlv320aic23-hifi",
        .codec_name     = "tlv320aic23-codec.0-001a",
        .platform_name  = "ep93xx-i2s",
-       .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_IF |
+       .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                          SND_SOC_DAIFMT_CBS_CFS,
        .ops            = &snappercl15_ops,
 };