ASoC: max9768: Use devm_regmap_init_i2c()
authorSachin Kamat <sachin.kamat@linaro.org>
Mon, 26 Nov 2012 11:49:41 +0000 (17:19 +0530)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sun, 2 Dec 2012 04:08:32 +0000 (13:08 +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/max9768.c

index 17b3ec2d05cb1ebade50fe27eb95b4a62dfbfc20..a777de6a1b23c7d07ad77eeca73e73f894ec37eb 100644 (file)
@@ -187,7 +187,7 @@ static int __devinit max9768_i2c_probe(struct i2c_client *client,
 
        i2c_set_clientdata(client, max9768);
 
-       max9768->regmap = regmap_init_i2c(client, &max9768_i2c_regmap_config);
+       max9768->regmap = devm_regmap_init_i2c(client, &max9768_i2c_regmap_config);
        if (IS_ERR(max9768->regmap)) {
                err = PTR_ERR(max9768->regmap);
                goto err_gpio_free;
@@ -195,12 +195,10 @@ static int __devinit max9768_i2c_probe(struct i2c_client *client,
 
        err = snd_soc_register_codec(&client->dev, &max9768_codec_driver, NULL, 0);
        if (err)
-               goto err_regmap_free;
+               goto err_gpio_free;
 
        return 0;
 
- err_regmap_free:
-       regmap_exit(max9768->regmap);
  err_gpio_free:
        if (gpio_is_valid(max9768->shdn_gpio))
                gpio_free(max9768->shdn_gpio);
@@ -215,7 +213,6 @@ static int __devexit max9768_i2c_remove(struct i2c_client *client)
        struct max9768 *max9768 = i2c_get_clientdata(client);
 
        snd_soc_unregister_codec(&client->dev);
-       regmap_exit(max9768->regmap);
 
        if (gpio_is_valid(max9768->shdn_gpio))
                gpio_free(max9768->shdn_gpio);