power: supply: wm8350: Use devm_power_supply_register() helper
authorAndrew Davis <afd@ti.com>
Mon, 29 Jan 2024 19:02:46 +0000 (13:02 -0600)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Thu, 1 Feb 2024 21:48:54 +0000 (22:48 +0100)
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/20240129190246.73067-5-afd@ti.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/wm8350_power.c

index f23b4f5343bc14927813f0408b86ec86c050bf64..3f79ab6f6abf1c7081e9493079ba58c2784ea3df 100644 (file)
@@ -540,22 +540,17 @@ static int wm8350_power_probe(struct platform_device *pdev)
        struct wm8350_charger_policy *policy = power->policy;
        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))
                return PTR_ERR(power->ac);
 
-       power->battery = power_supply_register(&pdev->dev, &wm8350_battery_desc,
-                                              NULL);
-       if (IS_ERR(power->battery)) {
-               ret = PTR_ERR(power->battery);
-               goto battery_failed;
-       }
+       power->battery = devm_power_supply_register(&pdev->dev, &wm8350_battery_desc, NULL);
+       if (IS_ERR(power->battery))
+               return PTR_ERR(power->battery);
 
-       power->usb = power_supply_register(&pdev->dev, &wm8350_usb_desc, NULL);
-       if (IS_ERR(power->usb)) {
-               ret = PTR_ERR(power->usb);
-               goto usb_failed;
-       }
+       power->usb = devm_power_supply_register(&pdev->dev, &wm8350_usb_desc, NULL);
+       if (IS_ERR(power->usb))
+               return PTR_ERR(power->usb);
 
        ret = device_create_file(&pdev->dev, &dev_attr_charger_state);
        if (ret < 0)
@@ -569,26 +564,15 @@ static int wm8350_power_probe(struct platform_device *pdev)
                wm8350_reg_lock(wm8350);
        }
 
-       return ret;
-
-usb_failed:
-       power_supply_unregister(power->battery);
-battery_failed:
-       power_supply_unregister(power->ac);
-
        return ret;
 }
 
 static void wm8350_power_remove(struct platform_device *pdev)
 {
        struct wm8350 *wm8350 = platform_get_drvdata(pdev);
-       struct wm8350_power *power = &wm8350->power;
 
        free_charger_irq(wm8350);
        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 = {