ASoC: tlv320aic32x4: Use snd_soc_update_bits() in aic32x4_set_dai_fmt()
authorAndrew F. Davis <afd@ti.com>
Tue, 12 Dec 2017 22:43:10 +0000 (16:43 -0600)
committerMark Brown <broonie@kernel.org>
Wed, 13 Dec 2017 12:29:14 +0000 (12:29 +0000)
Make the code easier to read by using snd_soc_update_bits() over
read/modify/write sequences.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/tlv320aic32x4.c

index 63a52cdb7afe204862dcf3ccb93f48d91e14b690..fea019343c3bfd5656e172c14c6e48eb531c530a 100644 (file)
@@ -614,16 +614,9 @@ static int aic32x4_set_dai_sysclk(struct snd_soc_dai *codec_dai,
 static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
 {
        struct snd_soc_codec *codec = codec_dai->codec;
-       u8 iface_reg_1;
-       u8 iface_reg_2;
-       u8 iface_reg_3;
-
-       iface_reg_1 = snd_soc_read(codec, AIC32X4_IFACE1);
-       iface_reg_1 = iface_reg_1 & ~(3 << 6 | 3 << 2);
-       iface_reg_2 = snd_soc_read(codec, AIC32X4_IFACE2);
-       iface_reg_2 = 0;
-       iface_reg_3 = snd_soc_read(codec, AIC32X4_IFACE3);
-       iface_reg_3 = iface_reg_3 & ~(1 << 3);
+       u8 iface_reg_1 = 0;
+       u8 iface_reg_2 = 0;
+       u8 iface_reg_3 = 0;
 
        /* set master/slave audio interface */
        switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
@@ -643,13 +636,13 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
        case SND_SOC_DAIFMT_DSP_A:
                iface_reg_1 |= (AIC32X4_DSP_MODE <<
                                AIC32X4_IFACE1_DATATYPE_SHIFT);
-               iface_reg_3 |= (1 << 3); /* invert bit clock */
+               iface_reg_3 |= AIC32X4_BCLKINV_MASK; /* invert bit clock */
                iface_reg_2 = 0x01; /* add offset 1 */
                break;
        case SND_SOC_DAIFMT_DSP_B:
                iface_reg_1 |= (AIC32X4_DSP_MODE <<
                                AIC32X4_IFACE1_DATATYPE_SHIFT);
-               iface_reg_3 |= (1 << 3); /* invert bit clock */
+               iface_reg_3 |= AIC32X4_BCLKINV_MASK; /* invert bit clock */
                break;
        case SND_SOC_DAIFMT_RIGHT_J:
                iface_reg_1 |= (AIC32X4_RIGHT_JUSTIFIED_MODE <<
@@ -664,9 +657,14 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
                return -EINVAL;
        }
 
-       snd_soc_write(codec, AIC32X4_IFACE1, iface_reg_1);
-       snd_soc_write(codec, AIC32X4_IFACE2, iface_reg_2);
-       snd_soc_write(codec, AIC32X4_IFACE3, iface_reg_3);
+       snd_soc_update_bits(codec, AIC32X4_IFACE1,
+                           AIC32X4_IFACE1_DATATYPE_MASK |
+                           AIC32X4_IFACE1_MASTER_MASK, iface_reg_1);
+       snd_soc_update_bits(codec, AIC32X4_IFACE2,
+                           AIC32X4_DATA_OFFSET_MASK, iface_reg_2);
+       snd_soc_update_bits(codec, AIC32X4_IFACE3,
+                           AIC32X4_BCLKINV_MASK, iface_reg_3);
+
        return 0;
 }