]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
power: supply: lp8788: Use devm_power_supply_register() helper
authorAndrew Davis <afd@ti.com>
Tue, 23 Jan 2024 16:36:38 +0000 (10:36 -0600)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Sat, 27 Jan 2024 00:23:41 +0000 (01:23 +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/20240123163653.384385-7-afd@ti.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/lp8788-charger.c

index 2c81be82a41a43834bd32d6f2a9d062960ac5f5b..72b170b4ac46a7dfac94668accefecd763fc980f 100644 (file)
@@ -406,12 +406,6 @@ static const struct power_supply_desc lp8788_psy_battery_desc = {
        .get_property   = lp8788_battery_get_property,
 };
 
-static void lp8788_psy_unregister(struct lp8788_charger *pchg)
-{
-       power_supply_unregister(pchg->battery);
-       power_supply_unregister(pchg->charger);
-}
-
 static void lp8788_charger_event(struct work_struct *work)
 {
        struct lp8788_charger *pchg =
@@ -666,18 +660,16 @@ static int lp8788_psy_register(struct platform_device *pdev,
        charger_cfg.supplied_to = battery_supplied_to;
        charger_cfg.num_supplicants = ARRAY_SIZE(battery_supplied_to);
 
-       pchg->charger = power_supply_register(&pdev->dev,
-                                             &lp8788_psy_charger_desc,
-                                             &charger_cfg);
+       pchg->charger = devm_power_supply_register(&pdev->dev,
+                                                  &lp8788_psy_charger_desc,
+                                                  &charger_cfg);
        if (IS_ERR(pchg->charger))
                return -EPERM;
 
-       pchg->battery = power_supply_register(&pdev->dev,
-                                             &lp8788_psy_battery_desc, NULL);
-       if (IS_ERR(pchg->battery)) {
-               power_supply_unregister(pchg->charger);
+       pchg->battery = devm_power_supply_register(&pdev->dev,
+                                                  &lp8788_psy_battery_desc, NULL);
+       if (IS_ERR(pchg->battery))
                return -EPERM;
-       }
 
        return 0;
 }
@@ -720,7 +712,6 @@ static void lp8788_charger_remove(struct platform_device *pdev)
 
        flush_work(&pchg->charger_work);
        lp8788_irq_unregister(pdev, pchg);
-       lp8788_psy_unregister(pchg);
 }
 
 static struct platform_driver lp8788_charger_driver = {