ALSA: ASoC: TLV320AIC3X: Modify only interface related bits in aic3x_set_dai_fmt
authorJarkko Nikula <jarkko.nikula@nokia.com>
Wed, 25 Jun 2008 11:58:45 +0000 (14:58 +0300)
committerJaroslav Kysela <perex@perex.cz>
Thu, 26 Jun 2008 07:02:17 +0000 (09:02 +0200)
Those two serial data interface control register bits have also other
functions and they can be set before aic3x_set_dai_fmt is called.

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
sound/soc/codecs/tlv320aic3x.c

index 0c7452f932e73e02b72eb11eae5aa2e5077c259d..29dc0ec3dd235c366a9d3f1743413e9fbaf65c4a 100644 (file)
@@ -809,8 +809,10 @@ static int aic3x_set_dai_fmt(struct snd_soc_codec_dai *codec_dai,
 {
        struct snd_soc_codec *codec = codec_dai->codec;
        struct aic3x_priv *aic3x = codec->private_data;
-       u8 iface_areg = 0;
-       u8 iface_breg = 0;
+       u8 iface_areg, iface_breg;
+
+       iface_areg = aic3x_read_reg_cache(codec, AIC3X_ASD_INTF_CTRLA) & 0x3f;
+       iface_breg = aic3x_read_reg_cache(codec, AIC3X_ASD_INTF_CTRLB) & 0x3f;
 
        /* set master/slave audio interface */
        switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {