]> git.baikalelectronics.ru Git - kernel.git/commitdiff
ASoC: sun8i-codec: Fix left and right channels inversion
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Wed, 8 Nov 2017 15:47:10 +0000 (16:47 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 8 Nov 2017 18:40:57 +0000 (18:40 +0000)
Since its introduction, the codec had an inversion of the left and right
channels. It turned out to be pretty simple as it appears that the codec
doesn't have the same polarity on the LRCK signal than the I2S block.

Fix this by inverting our bit value for the LRCK inversion.

Fixes: 36c684936fae ("ASoC: Add sun8i digital audio codec")
Cc: <stable@vger.kernel.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sunxi/sun8i-codec.c

index 038107baf414973918c661ac074e1c41f9263c3b..c2ceca485d6a0f06be60bd0cd15fee296bb9c6bb 100644 (file)
@@ -199,7 +199,7 @@ static int sun8i_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
                           value << SUN8I_AIF1CLK_CTRL_AIF1_BCLK_INV);
        regmap_update_bits(scodec->regmap, SUN8I_AIF1CLK_CTRL,
                           BIT(SUN8I_AIF1CLK_CTRL_AIF1_LRCK_INV),
-                          value << SUN8I_AIF1CLK_CTRL_AIF1_LRCK_INV);
+                          !value << SUN8I_AIF1CLK_CTRL_AIF1_LRCK_INV);
 
        /* DAI format */
        switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {