ASoC: Leave input audio data bit length settings untouched in wm8711_set_dai_fmt
authorAxel Lin <axel.lin@gmail.com>
Fri, 28 Oct 2011 07:17:56 +0000 (15:17 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 31 Oct 2011 12:38:28 +0000 (12:38 +0000)
Current implementation in wm8711_set_dai_fmt always clear BIT[3:2]
(the Input Audio Data Bit Length Select) of WM8711_IFACE(07h) register.
Input Audio Data Bit Length Select bits are set by wm8711_hw_params,
we should leave BIT[3:2] untouched in wm8711_set_dai_fmt.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
sound/soc/codecs/wm8711.c

index 8ba49d867ac7e286b1198c68649be3290cc08ad3..076bdb9930a15d6d50c4edd3d6009a7fad801089 100644 (file)
@@ -232,7 +232,7 @@ static int wm8711_set_dai_fmt(struct snd_soc_dai *codec_dai,
                unsigned int fmt)
 {
        struct snd_soc_codec *codec = codec_dai->codec;
-       u16 iface = 0;
+       u16 iface = snd_soc_read(codec, WM8711_IFACE) & 0x000c;
 
        /* set master/slave audio interface */
        switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {