mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
power: supply: wm831x: 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-15-afd@ti.com Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
aa0c8959da
commit
f2a7667c6c
|
|
@ -570,8 +570,9 @@ static int wm831x_power_probe(struct platform_device *pdev)
|
|||
power->wall_desc.properties = wm831x_wall_props;
|
||||
power->wall_desc.num_properties = ARRAY_SIZE(wm831x_wall_props);
|
||||
power->wall_desc.get_property = wm831x_wall_get_prop;
|
||||
power->wall = power_supply_register(&pdev->dev, &power->wall_desc,
|
||||
NULL);
|
||||
power->wall = devm_power_supply_register(&pdev->dev,
|
||||
&power->wall_desc,
|
||||
NULL);
|
||||
if (IS_ERR(power->wall)) {
|
||||
ret = PTR_ERR(power->wall);
|
||||
goto err;
|
||||
|
|
@ -582,7 +583,9 @@ static int wm831x_power_probe(struct platform_device *pdev)
|
|||
power->usb_desc.properties = wm831x_usb_props;
|
||||
power->usb_desc.num_properties = ARRAY_SIZE(wm831x_usb_props);
|
||||
power->usb_desc.get_property = wm831x_usb_get_prop;
|
||||
power->usb = power_supply_register(&pdev->dev, &power->usb_desc, NULL);
|
||||
power->usb = devm_power_supply_register(&pdev->dev,
|
||||
&power->usb_desc,
|
||||
NULL);
|
||||
if (IS_ERR(power->usb)) {
|
||||
ret = PTR_ERR(power->usb);
|
||||
goto err_wall;
|
||||
|
|
@ -599,9 +602,9 @@ static int wm831x_power_probe(struct platform_device *pdev)
|
|||
power->battery_desc.num_properties = ARRAY_SIZE(wm831x_bat_props);
|
||||
power->battery_desc.get_property = wm831x_bat_get_prop;
|
||||
power->battery_desc.use_for_apm = 1;
|
||||
power->battery = power_supply_register(&pdev->dev,
|
||||
&power->battery_desc,
|
||||
NULL);
|
||||
power->battery = devm_power_supply_register(&pdev->dev,
|
||||
&power->battery_desc,
|
||||
NULL);
|
||||
if (IS_ERR(power->battery)) {
|
||||
ret = PTR_ERR(power->battery);
|
||||
goto err_usb;
|
||||
|
|
@ -684,12 +687,8 @@ static int wm831x_power_probe(struct platform_device *pdev)
|
|||
irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO"));
|
||||
free_irq(irq, power);
|
||||
err_battery:
|
||||
if (power->have_battery)
|
||||
power_supply_unregister(power->battery);
|
||||
err_usb:
|
||||
power_supply_unregister(power->usb);
|
||||
err_wall:
|
||||
power_supply_unregister(power->wall);
|
||||
err:
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -717,11 +716,6 @@ static void wm831x_power_remove(struct platform_device *pdev)
|
|||
|
||||
irq = wm831x_irq(wm831x, platform_get_irq_byname(pdev, "SYSLO"));
|
||||
free_irq(irq, wm831x_power);
|
||||
|
||||
if (wm831x_power->have_battery)
|
||||
power_supply_unregister(wm831x_power->battery);
|
||||
power_supply_unregister(wm831x_power->wall);
|
||||
power_supply_unregister(wm831x_power->usb);
|
||||
}
|
||||
|
||||
static struct platform_driver wm831x_power_driver = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user