diff options
author | Axel Lin <axel.lin@gmail.com> | 2010-10-25 10:11:07 +0800 |
---|---|---|
committer | Liam Girdwood <lrg@slimlogic.co.uk> | 2010-10-28 22:40:32 +0100 |
commit | da05738e94b644d759f28184a9f0bf875b271c55 (patch) | |
tree | 324457b3aa0eefde5e53d86ae00b3488d94d4ddd | |
parent | f5ee10ab42c76f36eea1bd6f7a35da387635ebf9 (diff) |
regulator: max8952 - fix max8952_pmic_probe error path
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
-rw-r--r-- | drivers/regulator/max8952.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/regulator/max8952.c b/drivers/regulator/max8952.c index f2af0b1c392..7d6aacf5c49 100644 --- a/drivers/regulator/max8952.c +++ b/drivers/regulator/max8952.c @@ -212,9 +212,11 @@ static int __devinit max8952_pmic_probe(struct i2c_client *client, max8952->rdev = regulator_register(®ulator, max8952->dev, &pdata->reg_data, max8952); - ret = IS_ERR(max8952->rdev); - if (ret) + if (IS_ERR(max8952->rdev)) { + ret = PTR_ERR(max8952->rdev); dev_err(max8952->dev, "regulator init failed (%d)\n", ret); + goto err_reg; + } max8952->en = !!(pdata->reg_data.constraints.boot_on); max8952->vid0 = (pdata->default_mode % 2) == 1; @@ -309,6 +311,10 @@ static int __devinit max8952_pmic_probe(struct i2c_client *client, i2c_set_clientdata(client, max8952); + return 0; + +err_reg: + kfree(max8952); return ret; } |