]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
regulator: isl6271a-regulator: Use devm_regulator_register
authorSachin Kamat <sachin.kamat@linaro.org>
Wed, 4 Sep 2013 06:30:58 +0000 (12:00 +0530)
committerMark Brown <broonie@linaro.org>
Mon, 16 Sep 2013 23:28:42 +0000 (00:28 +0100)
devm_* simplifies the code.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/regulator/isl6271a-regulator.c

index 88c1a3acf563ebad5aa6301636961eda75528365..6e5da95fa025d4df8c8f3821230ec491be64bd22 100644 (file)
@@ -112,7 +112,7 @@ static int isl6271a_probe(struct i2c_client *i2c,
        struct regulator_config config = { };
        struct regulator_init_data *init_data   = dev_get_platdata(&i2c->dev);
        struct isl_pmic *pmic;
-       int err, i;
+       int i;
 
        if (!i2c_check_functionality(i2c->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
                return -EIO;
@@ -133,32 +133,17 @@ static int isl6271a_probe(struct i2c_client *i2c,
                        config.init_data = NULL;
                config.driver_data = pmic;
 
-               pmic->rdev[i] = regulator_register(&isl_rd[i], &config);
+               pmic->rdev[i] = devm_regulator_register(&i2c->dev, &isl_rd[i],
+                                                       &config);
                if (IS_ERR(pmic->rdev[i])) {
                        dev_err(&i2c->dev, "failed to register %s\n", id->name);
-                       err = PTR_ERR(pmic->rdev[i]);
-                       goto error;
+                       return PTR_ERR(pmic->rdev[i]);
                }
        }
 
        i2c_set_clientdata(i2c, pmic);
 
        return 0;
-
-error:
-       while (--i >= 0)
-               regulator_unregister(pmic->rdev[i]);
-       return err;
-}
-
-static int isl6271a_remove(struct i2c_client *i2c)
-{
-       struct isl_pmic *pmic = i2c_get_clientdata(i2c);
-       int i;
-
-       for (i = 0; i < 3; i++)
-               regulator_unregister(pmic->rdev[i]);
-       return 0;
 }
 
 static const struct i2c_device_id isl6271a_id[] = {
@@ -174,7 +159,6 @@ static struct i2c_driver isl6271a_i2c_driver = {
                .owner = THIS_MODULE,
        },
        .probe = isl6271a_probe,
-       .remove = isl6271a_remove,
        .id_table = isl6271a_id,
 };