regulator: max8952: Use devm_kzalloc
authorAxel Lin <axel.lin@gmail.com>
Wed, 16 May 2012 04:50:47 +0000 (12:50 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 16 May 2012 08:48:37 +0000 (09:48 +0100)
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/regulator/max8952.c

index 62ae140d8d9f125cfe524f74cf21f452fcc07a20..910c9b26d499f45f50034b417790921649fc4a6f 100644 (file)
@@ -181,7 +181,8 @@ static int __devinit max8952_pmic_probe(struct i2c_client *client,
        if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE))
                return -EIO;
 
-       max8952 = kzalloc(sizeof(struct max8952_data), GFP_KERNEL);
+       max8952 = devm_kzalloc(&client->dev, sizeof(struct max8952_data),
+                              GFP_KERNEL);
        if (!max8952)
                return -ENOMEM;
 
@@ -198,7 +199,7 @@ static int __devinit max8952_pmic_probe(struct i2c_client *client,
        if (IS_ERR(max8952->rdev)) {
                ret = PTR_ERR(max8952->rdev);
                dev_err(max8952->dev, "regulator init failed (%d)\n", ret);
-               goto err_reg;
+               return ret;
        }
 
        max8952->en = !!(pdata->reg_data.constraints.boot_on);
@@ -295,10 +296,6 @@ static int __devinit max8952_pmic_probe(struct i2c_client *client,
        i2c_set_clientdata(client, max8952);
 
        return 0;
-
-err_reg:
-       kfree(max8952);
-       return ret;
 }
 
 static int __devexit max8952_pmic_remove(struct i2c_client *client)
@@ -312,8 +309,6 @@ static int __devexit max8952_pmic_remove(struct i2c_client *client)
        gpio_free(pdata->gpio_vid0);
        gpio_free(pdata->gpio_vid1);
        gpio_free(pdata->gpio_en);
-
-       kfree(max8952);
        return 0;
 }