power: supply: bq27xxx: Use devm_power_supply_register() helper
authorAndrew Davis <afd@ti.com>
Tue, 23 Jan 2024 15:09:13 +0000 (09:09 -0600)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Fri, 26 Jan 2024 23:49:17 +0000 (00:49 +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/20240123150914.308510-4-afd@ti.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/bq27xxx_battery.c

index d3b6327b16b56dd9723bd06eea5cf47979d3b2ef..2bf5e007f16b23543ebb54a34b85bafc76ed630c 100644 (file)
@@ -2140,7 +2140,7 @@ int bq27xxx_battery_setup(struct bq27xxx_device_info *di)
        psy_desc->get_property = bq27xxx_battery_get_property;
        psy_desc->external_power_changed = bq27xxx_external_power_changed;
 
-       di->bat = power_supply_register_no_ws(di->dev, psy_desc, &psy_cfg);
+       di->bat = devm_power_supply_register_no_ws(di->dev, psy_desc, &psy_cfg);
        if (IS_ERR(di->bat))
                return dev_err_probe(di->dev, PTR_ERR(di->bat),
                                     "failed to register battery\n");
@@ -2168,8 +2168,6 @@ void bq27xxx_battery_teardown(struct bq27xxx_device_info *di)
        mutex_unlock(&di->lock);
 
        cancel_delayed_work_sync(&di->work);
-
-       power_supply_unregister(di->bat);
 }
 EXPORT_SYMBOL_GPL(bq27xxx_battery_teardown);