mfd: Convert tps65090 to devm_regmap_init_i2c()
Axel Lin [Wed, 25 Apr 2012 02:04:58 +0000 (10:04 +0800)]
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
(Cherry-picked from mainline
1d88f7a01d9588b3298cfd6a2ec30538e96d166e)

Change-Id: I0613e268d6a9cd16a154d5dea00deb5b3eb528c4
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/120371
Reviewed-by: Automatic_Commit_Validation_User

drivers/mfd/tps65090.c

index d994087..9ca4c44 100644 (file)
@@ -294,8 +294,8 @@ static int __devinit tps65090_i2c_probe(struct i2c_client *client,
                }
        }
 
-       tps65090->rmap = regmap_init_i2c(tps65090->client,
-               &tps65090_regmap_config);
+       tps65090->rmap = devm_regmap_init_i2c(tps65090->client,
+                                             &tps65090_regmap_config);
        if (IS_ERR(tps65090->rmap)) {
                ret = PTR_ERR(tps65090->rmap);
                dev_err(&client->dev, "regmap_init failed with err: %d\n", ret);
@@ -307,14 +307,11 @@ static int __devinit tps65090_i2c_probe(struct i2c_client *client,
        if (ret) {
                dev_err(&client->dev, "add mfd devices failed with err: %d\n",
                        ret);
-               goto err_regmap_exit;
+               goto err_irq_exit;
        }
 
        return 0;
 
-err_regmap_exit:
-       regmap_exit(tps65090->rmap);
-
 err_irq_exit:
        if (client->irq)
                free_irq(client->irq, tps65090);
@@ -327,7 +324,6 @@ static int __devexit tps65090_i2c_remove(struct i2c_client *client)
        struct tps65090 *tps65090 = i2c_get_clientdata(client);
 
        mfd_remove_devices(tps65090->dev);
-       regmap_exit(tps65090->rmap);
        if (client->irq)
                free_irq(client->irq, tps65090);