ASoC: wm8993: Use devm_regmap_init_i2c()
authorSachin Kamat <sachin.kamat@linaro.org>
Mon, 26 Nov 2012 11:49:46 +0000 (17:19 +0530)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sun, 2 Dec 2012 04:05:30 +0000 (13:05 +0900)
devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/wm8993.c

index c3d3107..347a359 100644 (file)
@@ -1660,7 +1660,7 @@ static __devinit int wm8993_i2c_probe(struct i2c_client *i2c,
        wm8993->dev = &i2c->dev;
        init_completion(&wm8993->fll_lock);
 
-       wm8993->regmap = regmap_init_i2c(i2c, &wm8993_regmap);
+       wm8993->regmap = devm_regmap_init_i2c(i2c, &wm8993_regmap);
        if (IS_ERR(wm8993->regmap)) {
                ret = PTR_ERR(wm8993->regmap);
                dev_err(&i2c->dev, "Failed to allocate regmap: %d\n", ret);
@@ -1676,14 +1676,14 @@ static __devinit int wm8993_i2c_probe(struct i2c_client *i2c,
                                 wm8993->supplies);
        if (ret != 0) {
                dev_err(&i2c->dev, "Failed to request supplies: %d\n", ret);
-               goto err;
+               return ret;
        }
 
        ret = regulator_bulk_enable(ARRAY_SIZE(wm8993->supplies),
                                    wm8993->supplies);
        if (ret != 0) {
                dev_err(&i2c->dev, "Failed to enable supplies: %d\n", ret);
-               goto err;
+               return ret;
        }
 
        ret = regmap_read(wm8993->regmap, WM8993_SOFTWARE_RESET, &reg);
@@ -1742,8 +1742,6 @@ err_irq:
                free_irq(i2c->irq, wm8993);
 err_enable:
        regulator_bulk_disable(ARRAY_SIZE(wm8993->supplies), wm8993->supplies);
-err:
-       regmap_exit(wm8993->regmap);
        return ret;
 }
 
@@ -1754,7 +1752,6 @@ static __devexit int wm8993_i2c_remove(struct i2c_client *i2c)
        snd_soc_unregister_codec(&i2c->dev);
        if (i2c->irq)
                free_irq(i2c->irq, wm8993);
-       regmap_exit(wm8993->regmap);
        regulator_bulk_disable(ARRAY_SIZE(wm8993->supplies), wm8993->supplies);
 
        return 0;