mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
power: supply: lp8727: Use devm_power_supply_register() helper
Use the device lifecycle managed register function. This helps prevent mistakes like unregistering out of order in cleanup functions and forgetting to unregister on error paths. Signed-off-by: Andrew Davis <afd@ti.com> Link: https://lore.kernel.org/r/20240123163653.384385-6-afd@ti.com Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
ada63f1ec9
commit
3b4d07fdaf
@ -453,39 +453,20 @@ static int lp8727_register_psy(struct lp8727_chg *pchg)
|
||||
psy_cfg.supplied_to = battery_supplied_to;
|
||||
psy_cfg.num_supplicants = ARRAY_SIZE(battery_supplied_to);
|
||||
|
||||
psy->ac = power_supply_register(pchg->dev, &lp8727_ac_desc, &psy_cfg);
|
||||
psy->ac = devm_power_supply_register(pchg->dev, &lp8727_ac_desc, &psy_cfg);
|
||||
if (IS_ERR(psy->ac))
|
||||
goto err_psy_ac;
|
||||
return -EPERM;
|
||||
|
||||
psy->usb = power_supply_register(pchg->dev, &lp8727_usb_desc,
|
||||
&psy_cfg);
|
||||
psy->usb = devm_power_supply_register(pchg->dev, &lp8727_usb_desc,
|
||||
&psy_cfg);
|
||||
if (IS_ERR(psy->usb))
|
||||
goto err_psy_usb;
|
||||
return -EPERM;
|
||||
|
||||
psy->batt = power_supply_register(pchg->dev, &lp8727_batt_desc, NULL);
|
||||
psy->batt = devm_power_supply_register(pchg->dev, &lp8727_batt_desc, NULL);
|
||||
if (IS_ERR(psy->batt))
|
||||
goto err_psy_batt;
|
||||
return -EPERM;
|
||||
|
||||
return 0;
|
||||
|
||||
err_psy_batt:
|
||||
power_supply_unregister(psy->usb);
|
||||
err_psy_usb:
|
||||
power_supply_unregister(psy->ac);
|
||||
err_psy_ac:
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
static void lp8727_unregister_psy(struct lp8727_chg *pchg)
|
||||
{
|
||||
struct lp8727_psy *psy = pchg->psy;
|
||||
|
||||
if (!psy)
|
||||
return;
|
||||
|
||||
power_supply_unregister(psy->ac);
|
||||
power_supply_unregister(psy->usb);
|
||||
power_supply_unregister(psy->batt);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
@ -583,7 +564,6 @@ static int lp8727_probe(struct i2c_client *cl)
|
||||
ret = lp8727_setup_irq(pchg);
|
||||
if (ret) {
|
||||
dev_err(pchg->dev, "irq handler err: %d", ret);
|
||||
lp8727_unregister_psy(pchg);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -595,7 +575,6 @@ static void lp8727_remove(struct i2c_client *cl)
|
||||
struct lp8727_chg *pchg = i2c_get_clientdata(cl);
|
||||
|
||||
lp8727_release_irq(pchg);
|
||||
lp8727_unregister_psy(pchg);
|
||||
}
|
||||
|
||||
static const struct of_device_id lp8727_dt_ids[] __maybe_unused = {
|
||||
|
Loading…
Reference in New Issue
Block a user