Messages in this thread | | | From | Jingoo Han <> | Subject | Re: [PATCH V3 12/14] regulator: tps6524x: use devm_regulator_register() | Date | Thu, 26 Sep 2013 17:13:42 +0900 |
| |
On Thursday, September 26, 2013 5:06 PM, Axel Lin wrote: > 2013/9/26 Jingoo Han <jg1.han@samsung.com>: > > Use devm_regulator_register() to make cleanup paths simpler. > > > > Signed-off-by: Jingoo Han <jg1.han@samsung.com> > > --- > > drivers/regulator/tps6524x-regulator.c | 7 +++---- > > 1 file changed, 3 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/regulator/tps6524x-regulator.c b/drivers/regulator/tps6524x-regulator.c > > index 8b9ee39..8fe67fb 100644 > > --- a/drivers/regulator/tps6524x-regulator.c > > +++ b/drivers/regulator/tps6524x-regulator.c > > @@ -584,10 +584,8 @@ static int pmic_remove(struct spi_device *spi) > > > > if (!hw) > > return 0; > > - for (i = 0; i < N_REGULATORS; i++) { > > - regulator_unregister(hw->rdev[i]); > > + for (i = 0; i < N_REGULATORS; i++) > > hw->rdev[i] = NULL; > > - } > > return 0; > > } > > > > @@ -631,7 +629,8 @@ static int pmic_probe(struct spi_device *spi) > > config.init_data = init_data; > > config.driver_data = hw; > > > > - hw->rdev[i] = regulator_register(&hw->desc[i], &config); > > + hw->rdev[i] = devm_regulator_register(dev, &hw->desc[i], > > + &config); > > if (IS_ERR(hw->rdev[i])) { > > ret = PTR_ERR(hw->rdev[i]); > > hw->rdev[i] = NULL; > > I think you can simply return PTR_ERR(hw->rdev[i]) if devm_regulator_register() > fails. > You are using devm_regulator_register now, so don't need to call > pmic_remove() in probe() error path. > Then pmic_remove() and .remove = pmic_remove() can be removed as well. >
CC'ed Sachin Kamat,
Hi Axel,
I really appreciate your comment.
Then, you mean the following. If I am wrong, please let me know. :-) Thank you.
static int pmic_probe(struct spi_device *spi) { ......
hw->rdev[i] = devm_regulator_register(dev, &hw->desc[i], &config); if (IS_ERR(hw->rdev[i])) return PTR_ERR(hw->rdev[i]); }
return 0; }
static struct spi_driver pmic_driver = { .probe = pmic_probe, .driver = { .name = "tps6524x", .owner = THIS_MODULE, }, };
Best regards, Jingoo Han
| |