diff options
author | Jingoo Han <jg1.han@samsung.com> | 2013-12-06 02:08:38 -0500 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-12-09 12:40:57 -0500 |
commit | 92dfbdbcb504beb1d716e500cd20b4780961afd5 (patch) | |
tree | bc89ebc20cd25739cea0f35e0a2195e24e752ecd | |
parent | 6ce4eac1f600b34f2f7f58f9cd8f0503d79e42ae (diff) |
regulator: db8500-prcmu: use devm_regulator_register()
Use devm_regulator_register() to make cleanup paths simpler.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r-- | drivers/regulator/db8500-prcmu.c | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/drivers/regulator/db8500-prcmu.c b/drivers/regulator/db8500-prcmu.c index a53c11a529d5..846acf240e48 100644 --- a/drivers/regulator/db8500-prcmu.c +++ b/drivers/regulator/db8500-prcmu.c | |||
@@ -431,17 +431,11 @@ static int db8500_regulator_register(struct platform_device *pdev, | |||
431 | config.of_node = np; | 431 | config.of_node = np; |
432 | 432 | ||
433 | /* register with the regulator framework */ | 433 | /* register with the regulator framework */ |
434 | info->rdev = regulator_register(&info->desc, &config); | 434 | info->rdev = devm_regulator_register(&pdev->dev, &info->desc, &config); |
435 | if (IS_ERR(info->rdev)) { | 435 | if (IS_ERR(info->rdev)) { |
436 | err = PTR_ERR(info->rdev); | 436 | err = PTR_ERR(info->rdev); |
437 | dev_err(&pdev->dev, "failed to register %s: err %i\n", | 437 | dev_err(&pdev->dev, "failed to register %s: err %i\n", |
438 | info->desc.name, err); | 438 | info->desc.name, err); |
439 | |||
440 | /* if failing, unregister all earlier regulators */ | ||
441 | while (--id >= 0) { | ||
442 | info = &dbx500_regulator_info[id]; | ||
443 | regulator_unregister(info->rdev); | ||
444 | } | ||
445 | return err; | 439 | return err; |
446 | } | 440 | } |
447 | 441 | ||
@@ -530,20 +524,8 @@ static int db8500_regulator_probe(struct platform_device *pdev) | |||
530 | 524 | ||
531 | static int db8500_regulator_remove(struct platform_device *pdev) | 525 | static int db8500_regulator_remove(struct platform_device *pdev) |
532 | { | 526 | { |
533 | int i; | ||
534 | |||
535 | ux500_regulator_debug_exit(); | 527 | ux500_regulator_debug_exit(); |
536 | 528 | ||
537 | for (i = 0; i < ARRAY_SIZE(dbx500_regulator_info); i++) { | ||
538 | struct dbx500_regulator_info *info; | ||
539 | info = &dbx500_regulator_info[i]; | ||
540 | |||
541 | dev_vdbg(rdev_get_dev(info->rdev), | ||
542 | "regulator-%s-remove\n", info->desc.name); | ||
543 | |||
544 | regulator_unregister(info->rdev); | ||
545 | } | ||
546 | |||
547 | return 0; | 529 | return 0; |
548 | } | 530 | } |
549 | 531 | ||