Commit cad1e6df authored by Andrew Davis's avatar Andrew Davis Committed by Sebastian Reichel

power: supply: wm8350: 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: default avatarAndrew Davis <afd@ti.com>
Link: https://lore.kernel.org/r/20240129190246.73067-5-afd@ti.comSigned-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
parent 478a253e
...@@ -540,22 +540,17 @@ static int wm8350_power_probe(struct platform_device *pdev) ...@@ -540,22 +540,17 @@ static int wm8350_power_probe(struct platform_device *pdev)
struct wm8350_charger_policy *policy = power->policy; struct wm8350_charger_policy *policy = power->policy;
int ret; int ret;
power->ac = power_supply_register(&pdev->dev, &wm8350_ac_desc, NULL); power->ac = devm_power_supply_register(&pdev->dev, &wm8350_ac_desc, NULL);
if (IS_ERR(power->ac)) if (IS_ERR(power->ac))
return PTR_ERR(power->ac); return PTR_ERR(power->ac);
power->battery = power_supply_register(&pdev->dev, &wm8350_battery_desc, power->battery = devm_power_supply_register(&pdev->dev, &wm8350_battery_desc, NULL);
NULL); if (IS_ERR(power->battery))
if (IS_ERR(power->battery)) { return PTR_ERR(power->battery);
ret = PTR_ERR(power->battery);
goto battery_failed;
}
power->usb = power_supply_register(&pdev->dev, &wm8350_usb_desc, NULL); power->usb = devm_power_supply_register(&pdev->dev, &wm8350_usb_desc, NULL);
if (IS_ERR(power->usb)) { if (IS_ERR(power->usb))
ret = PTR_ERR(power->usb); return PTR_ERR(power->usb);
goto usb_failed;
}
ret = device_create_file(&pdev->dev, &dev_attr_charger_state); ret = device_create_file(&pdev->dev, &dev_attr_charger_state);
if (ret < 0) if (ret < 0)
...@@ -569,26 +564,15 @@ static int wm8350_power_probe(struct platform_device *pdev) ...@@ -569,26 +564,15 @@ static int wm8350_power_probe(struct platform_device *pdev)
wm8350_reg_lock(wm8350); wm8350_reg_lock(wm8350);
} }
return ret;
usb_failed:
power_supply_unregister(power->battery);
battery_failed:
power_supply_unregister(power->ac);
return ret; return ret;
} }
static void wm8350_power_remove(struct platform_device *pdev) static void wm8350_power_remove(struct platform_device *pdev)
{ {
struct wm8350 *wm8350 = platform_get_drvdata(pdev); struct wm8350 *wm8350 = platform_get_drvdata(pdev);
struct wm8350_power *power = &wm8350->power;
free_charger_irq(wm8350); free_charger_irq(wm8350);
device_remove_file(&pdev->dev, &dev_attr_charger_state); device_remove_file(&pdev->dev, &dev_attr_charger_state);
power_supply_unregister(power->battery);
power_supply_unregister(power->ac);
power_supply_unregister(power->usb);
} }
static struct platform_driver wm8350_power_driver = { static struct platform_driver wm8350_power_driver = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment