ASoC: wm8993: Convert to use a regmap patch
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 31 Jan 2012 15:20:24 +0000 (15:20 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 31 Jan 2012 15:25:12 +0000 (15:25 +0000)
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/wm8993.c

index dd687c3..474dc72 100644 (file)
@@ -1077,11 +1077,6 @@ static int wm8993_set_bias_level(struct snd_soc_codec *codec,
                        regcache_cache_only(wm8993->regmap, false);
                        regcache_sync(wm8993->regmap);
 
-                       /* Tune DC servo configuration */
-                       snd_soc_write(codec, 0x44, 3);
-                       snd_soc_write(codec, 0x56, 3);
-                       snd_soc_write(codec, 0x44, 0);
-
                        /* Bring up VMID with fast soft start */
                        snd_soc_update_bits(codec, WM8993_ANTIPOP2,
                                            WM8993_STARTUP_BIAS_ENA |
@@ -1691,6 +1686,13 @@ static int wm8993_resume(struct snd_soc_codec *codec)
 #define wm8993_resume NULL
 #endif
 
+/* Tune DC servo configuration */
+static struct reg_default wm8993_regmap_patch[] = {
+       { 0x44, 3 },
+       { 0x56, 3 },
+       { 0x44, 0 },
+};
+
 static const struct regmap_config wm8993_regmap = {
        .reg_bits = 8,
        .val_bits = 16,
@@ -1769,6 +1771,12 @@ static __devinit int wm8993_i2c_probe(struct i2c_client *i2c,
        if (ret != 0)
                goto err_enable;
 
+       ret = regmap_register_patch(wm8993->regmap, wm8993_regmap_patch,
+                                   ARRAY_SIZE(wm8993_regmap_patch));
+       if (ret != 0)
+               dev_warn(wm8993->dev, "Failed to apply regmap patch: %d\n",
+                        ret);
+
        if (i2c->irq) {
                /* Put GPIO1 into interrupt mode (only GPIO1 can output IRQ) */
                ret = regmap_update_bits(wm8993->regmap, WM8993_GPIO1,