Merge remote-tracking branch 'regulator/topic/lp397x' into regulator-next

This commit is contained in:
Mark Brown 2013-07-01 11:17:09 +01:00
Родитель 0a192cc860 2af0af6735
Коммит bc830f352e
2 изменённых файлов: 6 добавлений и 16 удалений

Просмотреть файл

@ -434,7 +434,7 @@ static int lp3971_i2c_probe(struct i2c_client *i2c,
return -ENODEV; return -ENODEV;
} }
lp3971 = kzalloc(sizeof(struct lp3971), GFP_KERNEL); lp3971 = devm_kzalloc(&i2c->dev, sizeof(struct lp3971), GFP_KERNEL);
if (lp3971 == NULL) if (lp3971 == NULL)
return -ENOMEM; return -ENOMEM;
@ -449,19 +449,15 @@ static int lp3971_i2c_probe(struct i2c_client *i2c,
ret = -ENODEV; ret = -ENODEV;
if (ret < 0) { if (ret < 0) {
dev_err(&i2c->dev, "failed to detect device\n"); dev_err(&i2c->dev, "failed to detect device\n");
goto err_detect; return ret;
} }
ret = setup_regulators(lp3971, pdata); ret = setup_regulators(lp3971, pdata);
if (ret < 0) if (ret < 0)
goto err_detect; return ret;
i2c_set_clientdata(i2c, lp3971); i2c_set_clientdata(i2c, lp3971);
return 0; return 0;
err_detect:
kfree(lp3971);
return ret;
} }
static int lp3971_i2c_remove(struct i2c_client *i2c) static int lp3971_i2c_remove(struct i2c_client *i2c)
@ -473,7 +469,6 @@ static int lp3971_i2c_remove(struct i2c_client *i2c)
regulator_unregister(lp3971->rdev[i]); regulator_unregister(lp3971->rdev[i]);
kfree(lp3971->rdev); kfree(lp3971->rdev);
kfree(lp3971);
return 0; return 0;
} }

Просмотреть файл

@ -528,7 +528,7 @@ static int lp3972_i2c_probe(struct i2c_client *i2c,
return -ENODEV; return -ENODEV;
} }
lp3972 = kzalloc(sizeof(struct lp3972), GFP_KERNEL); lp3972 = devm_kzalloc(&i2c->dev, sizeof(struct lp3972), GFP_KERNEL);
if (!lp3972) if (!lp3972)
return -ENOMEM; return -ENOMEM;
@ -546,19 +546,15 @@ static int lp3972_i2c_probe(struct i2c_client *i2c,
} }
if (ret < 0) { if (ret < 0) {
dev_err(&i2c->dev, "failed to detect device. ret = %d\n", ret); dev_err(&i2c->dev, "failed to detect device. ret = %d\n", ret);
goto err_detect; return ret;
} }
ret = setup_regulators(lp3972, pdata); ret = setup_regulators(lp3972, pdata);
if (ret < 0) if (ret < 0)
goto err_detect; return ret;
i2c_set_clientdata(i2c, lp3972); i2c_set_clientdata(i2c, lp3972);
return 0; return 0;
err_detect:
kfree(lp3972);
return ret;
} }
static int lp3972_i2c_remove(struct i2c_client *i2c) static int lp3972_i2c_remove(struct i2c_client *i2c)
@ -569,7 +565,6 @@ static int lp3972_i2c_remove(struct i2c_client *i2c)
for (i = 0; i < lp3972->num_regulators; i++) for (i = 0; i < lp3972->num_regulators; i++)
regulator_unregister(lp3972->rdev[i]); regulator_unregister(lp3972->rdev[i]);
kfree(lp3972->rdev); kfree(lp3972->rdev);
kfree(lp3972);
return 0; return 0;
} }