ASoC: cs42l73: Fix clear wrong bits in cs42l73_set_dai_fmt
authorAxel Lin <axel.lin@gmail.com>
Tue, 29 Nov 2011 11:47:38 +0000 (19:47 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 29 Nov 2011 11:50:50 +0000 (11:50 +0000)
What we want is to clear BIT[5:4](PCM_MODE_MASK) and BIT[3](PCM_BIT_ORDER) bits,
but current code clears BIT[2:0].

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/cs42l73.c

index 9fd5de77cafbd1d893fc84bdf36d0622edf4ba24..da3125aa55f9a7725815fd04f01da11c30f9c609 100644 (file)
@@ -1024,7 +1024,8 @@ static int cs42l73_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
        }
 
        if (spc & SPDIF_PCM) {
-               spc &= (31 << 3);       /* Clear PCM mode, set MSB->LSB */
+               /* Clear PCM mode, clear PCM_BIT_ORDER bit for MSB->LSB */
+               spc &= ~(PCM_MODE_MASK | PCM_BIT_ORDER);
                switch (format) {
                case SND_SOC_DAIFMT_DSP_B:
                        if (inv == SND_SOC_DAIFMT_IB_IF)