Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

power: supply: rt5033: 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-12-afd@ti.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>

authored by

Andrew Davis and committed by
Sebastian Reichel
3a93da23 e90a67f6

+3 -11
+3 -11
drivers/power/supply/rt5033_battery.c
··· 159 159 return -EINVAL; 160 160 } 161 161 162 - i2c_set_clientdata(client, battery); 163 162 psy_cfg.of_node = client->dev.of_node; 164 163 psy_cfg.drv_data = battery; 165 164 166 - battery->psy = power_supply_register(&client->dev, 167 - &rt5033_battery_desc, &psy_cfg); 165 + battery->psy = devm_power_supply_register(&client->dev, 166 + &rt5033_battery_desc, 167 + &psy_cfg); 168 168 if (IS_ERR(battery->psy)) 169 169 return dev_err_probe(&client->dev, PTR_ERR(battery->psy), 170 170 "Failed to register power supply\n"); 171 171 172 172 return 0; 173 - } 174 - 175 - static void rt5033_battery_remove(struct i2c_client *client) 176 - { 177 - struct rt5033_battery *battery = i2c_get_clientdata(client); 178 - 179 - power_supply_unregister(battery->psy); 180 173 } 181 174 182 175 static const struct i2c_device_id rt5033_battery_id[] = { ··· 190 197 .of_match_table = rt5033_battery_of_match, 191 198 }, 192 199 .probe = rt5033_battery_probe, 193 - .remove = rt5033_battery_remove, 194 200 .id_table = rt5033_battery_id, 195 201 }; 196 202 module_i2c_driver(rt5033_battery_driver);