From: Andrew Davis Date: Tue, 23 Jan 2024 16:36:37 +0000 (-0600) Subject: power: supply: lp8727: Use devm_power_supply_register() helper X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=3b4d07fdaf17a8bb79173c2c40876d3221edeea4;p=linux.git 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 Link: https://lore.kernel.org/r/20240123163653.384385-6-afd@ti.com Signed-off-by: Sebastian Reichel --- diff --git a/drivers/power/supply/lp8727_charger.c b/drivers/power/supply/lp8727_charger.c index 0875391f7ac6b..34548a4da90b2 100644 --- a/drivers/power/supply/lp8727_charger.c +++ b/drivers/power/supply/lp8727_charger.c @@ -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 = {