ASoC: cirrus: i2s: Fix LRCLK configuration
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
This commit is contained in:
parent
5845e6155d
commit
2d534113be
|
@ -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,
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue