diff options
author | Jingoo Han <jg1.han@samsung.com> | 2013-12-06 02:11:58 -0500 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-12-09 12:42:18 -0500 |
commit | f5247b401ccfbbf062ca1f4d3eef433f406c39ae (patch) | |
tree | 0d60c0d4291d7b8c8ba9ab23572c6c92cc27f1bc | |
parent | 6ce4eac1f600b34f2f7f58f9cd8f0503d79e42ae (diff) |
regulator: pfuze100: use devm_regulator_register()
Use devm_regulator_register() to make cleanup paths simpler,
and remove unnecessary remove().
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Robin Gong <b38343@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r-- | drivers/regulator/pfuze100-regulator.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/drivers/regulator/pfuze100-regulator.c b/drivers/regulator/pfuze100-regulator.c index ba67b2c4e2e7..1d5ef37918f9 100644 --- a/drivers/regulator/pfuze100-regulator.c +++ b/drivers/regulator/pfuze100-regulator.c | |||
@@ -402,31 +402,18 @@ static int pfuze100_regulator_probe(struct i2c_client *client, | |||
402 | config.driver_data = pfuze_chip; | 402 | config.driver_data = pfuze_chip; |
403 | config.of_node = match_of_node(i); | 403 | config.of_node = match_of_node(i); |
404 | 404 | ||
405 | pfuze_chip->regulators[i] = regulator_register(desc, &config); | 405 | pfuze_chip->regulators[i] = |
406 | devm_regulator_register(&client->dev, desc, &config); | ||
406 | if (IS_ERR(pfuze_chip->regulators[i])) { | 407 | if (IS_ERR(pfuze_chip->regulators[i])) { |
407 | dev_err(&client->dev, "register regulator%s failed\n", | 408 | dev_err(&client->dev, "register regulator%s failed\n", |
408 | pfuze100_regulators[i].desc.name); | 409 | pfuze100_regulators[i].desc.name); |
409 | ret = PTR_ERR(pfuze_chip->regulators[i]); | 410 | return PTR_ERR(pfuze_chip->regulators[i]); |
410 | while (--i >= 0) | ||
411 | regulator_unregister(pfuze_chip->regulators[i]); | ||
412 | return ret; | ||
413 | } | 411 | } |
414 | } | 412 | } |
415 | 413 | ||
416 | return 0; | 414 | return 0; |
417 | } | 415 | } |
418 | 416 | ||
419 | static int pfuze100_regulator_remove(struct i2c_client *client) | ||
420 | { | ||
421 | int i; | ||
422 | struct pfuze_chip *pfuze_chip = i2c_get_clientdata(client); | ||
423 | |||
424 | for (i = 0; i < PFUZE100_MAX_REGULATOR; i++) | ||
425 | regulator_unregister(pfuze_chip->regulators[i]); | ||
426 | |||
427 | return 0; | ||
428 | } | ||
429 | |||
430 | static struct i2c_driver pfuze_driver = { | 417 | static struct i2c_driver pfuze_driver = { |
431 | .id_table = pfuze_device_id, | 418 | .id_table = pfuze_device_id, |
432 | .driver = { | 419 | .driver = { |
@@ -435,7 +422,6 @@ static struct i2c_driver pfuze_driver = { | |||
435 | .of_match_table = pfuze_dt_ids, | 422 | .of_match_table = pfuze_dt_ids, |
436 | }, | 423 | }, |
437 | .probe = pfuze100_regulator_probe, | 424 | .probe = pfuze100_regulator_probe, |
438 | .remove = pfuze100_regulator_remove, | ||
439 | }; | 425 | }; |
440 | module_i2c_driver(pfuze_driver); | 426 | module_i2c_driver(pfuze_driver); |
441 | 427 | ||