mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 21:15:53 +02:00
power: supply: tps65090: 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-13-afd@ti.com Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
3a93da231c
commit
503920abb5
|
|
@ -262,7 +262,7 @@ static int tps65090_charger_probe(struct platform_device *pdev)
|
|||
psy_cfg.of_node = pdev->dev.of_node;
|
||||
psy_cfg.drv_data = cdata;
|
||||
|
||||
cdata->ac = power_supply_register(&pdev->dev, &tps65090_charger_desc,
|
||||
cdata->ac = devm_power_supply_register(&pdev->dev, &tps65090_charger_desc,
|
||||
&psy_cfg);
|
||||
if (IS_ERR(cdata->ac)) {
|
||||
dev_err(&pdev->dev, "failed: power supply register\n");
|
||||
|
|
@ -277,7 +277,7 @@ static int tps65090_charger_probe(struct platform_device *pdev)
|
|||
ret = tps65090_config_charger(cdata);
|
||||
if (ret < 0) {
|
||||
dev_err(&pdev->dev, "charger config failed, err %d\n", ret);
|
||||
goto fail_unregister_supply;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Check for charger presence */
|
||||
|
|
@ -286,14 +286,14 @@ static int tps65090_charger_probe(struct platform_device *pdev)
|
|||
if (ret < 0) {
|
||||
dev_err(cdata->dev, "%s(): Error in reading reg 0x%x", __func__,
|
||||
TPS65090_REG_CG_STATUS1);
|
||||
goto fail_unregister_supply;
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (status1 != 0) {
|
||||
ret = tps65090_enable_charging(cdata);
|
||||
if (ret < 0) {
|
||||
dev_err(cdata->dev, "error enabling charger\n");
|
||||
goto fail_unregister_supply;
|
||||
return ret;
|
||||
}
|
||||
cdata->ac_online = 1;
|
||||
power_supply_changed(cdata->ac);
|
||||
|
|
@ -306,7 +306,7 @@ static int tps65090_charger_probe(struct platform_device *pdev)
|
|||
dev_err(cdata->dev,
|
||||
"Unable to register irq %d err %d\n", irq,
|
||||
ret);
|
||||
goto fail_unregister_supply;
|
||||
return ret;
|
||||
}
|
||||
} else {
|
||||
cdata->poll_task = kthread_run(tps65090_charger_poll_task,
|
||||
|
|
@ -316,16 +316,11 @@ static int tps65090_charger_probe(struct platform_device *pdev)
|
|||
ret = PTR_ERR(cdata->poll_task);
|
||||
dev_err(cdata->dev,
|
||||
"Unable to run kthread err %d\n", ret);
|
||||
goto fail_unregister_supply;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
fail_unregister_supply:
|
||||
power_supply_unregister(cdata->ac);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void tps65090_charger_remove(struct platform_device *pdev)
|
||||
|
|
@ -334,7 +329,6 @@ static void tps65090_charger_remove(struct platform_device *pdev)
|
|||
|
||||
if (cdata->irq == -ENXIO)
|
||||
kthread_stop(cdata->poll_task);
|
||||
power_supply_unregister(cdata->ac);
|
||||
}
|
||||
|
||||
static const struct of_device_id of_tps65090_charger_match[] = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user