Merge branch 'topic/sysfs-init' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into regulator-supply

This commit is contained in:
Mark Brown 2016-04-22 11:38:42 +01:00
commit f89ba3383e
1 changed files with 10 additions and 10 deletions

View File

@ -3961,13 +3961,6 @@ regulator_register(const struct regulator_desc *regulator_desc,
rdev->dev.parent = dev;
dev_set_name(&rdev->dev, "regulator.%lu",
(unsigned long) atomic_inc_return(&regulator_no));
ret = device_register(&rdev->dev);
if (ret != 0) {
put_device(&rdev->dev);
goto wash;
}
dev_set_drvdata(&rdev->dev, rdev);
/* set regulator constraints */
if (init_data)
@ -3975,7 +3968,15 @@ regulator_register(const struct regulator_desc *regulator_desc,
ret = set_machine_constraints(rdev, constraints);
if (ret < 0)
goto scrub;
goto wash;
ret = device_register(&rdev->dev);
if (ret != 0) {
put_device(&rdev->dev);
goto wash;
}
dev_set_drvdata(&rdev->dev, rdev);
if (init_data && init_data->supply_regulator)
rdev->supply_name = init_data->supply_regulator;
@ -4007,14 +4008,13 @@ regulator_register(const struct regulator_desc *regulator_desc,
unset_supplies:
unset_regulator_supplies(rdev);
scrub:
regulator_ena_gpio_free(rdev);
device_unregister(&rdev->dev);
/* device core frees rdev */
goto out;
wash:
kfree(rdev->constraints);
regulator_ena_gpio_free(rdev);
clean:
kfree(rdev);