ASoC: ak4613: use snd_soc_update_bits() to avoid Reserve bit on I/O CTRL
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 19 Apr 2017 00:40:38 +0000 (00:40 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 19 Apr 2017 16:23:47 +0000 (17:23 +0100)
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/ak4613.c

index e819dd8c82fdced146515a9da7c604f783bc2d32..b2dfddead22774cc85a9b4612b8edbfd3ceffa5c 100644 (file)
 #define DFS_DOUBLE_SPEED       (1 << 2)
 #define DFS_QUAD_SPEED         (2 << 2)
 
+/* ICTRL */
+#define ICTRL_MASK     (0x3)
+
+/* OCTRL */
+#define OCTRL_MASK     (0x3F)
+
 struct ak4613_formats {
        unsigned int width;
        unsigned int fmt;
@@ -365,8 +371,8 @@ static int ak4613_dai_hw_params(struct snd_pcm_substream *substream,
        snd_soc_update_bits(codec, CTRL1, FMT_MASK, fmt_ctrl);
        snd_soc_update_bits(codec, CTRL2, DFS_MASK, ctrl2);
 
-       snd_soc_write(codec, ICTRL, priv->ic);
-       snd_soc_write(codec, OCTRL, priv->oc);
+       snd_soc_update_bits(codec, ICTRL, ICTRL_MASK, priv->ic);
+       snd_soc_update_bits(codec, OCTRL, OCTRL_MASK, priv->oc);
 
 hw_params_end:
        if (ret < 0)