diff options
author | Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> | 2021-03-23 15:57:56 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-03-23 15:22:40 +0100 |
commit | 6d0c5de2fd84a0ad07f0cecea24def3987675192 (patch) | |
tree | 6f2cda876c2d01ed851d5a6a8fdc9149fc4ba42b /drivers/power/supply/sbs-battery.c | |
parent | b82a7b018b93d282d0f1a41a854ca3d071e02759 (diff) | |
download | linux-6d0c5de2fd84a0ad07f0cecea24def3987675192.tar.gz linux-6d0c5de2fd84a0ad07f0cecea24def3987675192.tar.bz2 linux-6d0c5de2fd84a0ad07f0cecea24def3987675192.zip |
power: supply: Clean-up few drivers by using managed work init
Few drivers implement remove call-back only for ensuring a delayed
work gets cancelled prior driver removal. Clean-up these by switching
to use devm_delayed_work_autocancel() instead.
This change is compile-tested only. All testing is appreciated.
Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Link: https://lore.kernel.org/r/e5b1b0380cdd1aa066c9ac6d7a8b1a86ba1ddbbe.1616506559.git.matti.vaittinen@fi.rohmeurope.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/power/supply/sbs-battery.c')
-rw-r--r-- | drivers/power/supply/sbs-battery.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/power/supply/sbs-battery.c b/drivers/power/supply/sbs-battery.c index b6a538ebb378..70ea404b2a36 100644 --- a/drivers/power/supply/sbs-battery.c +++ b/drivers/power/supply/sbs-battery.c @@ -7,6 +7,7 @@ #include <linux/bits.h> #include <linux/delay.h> +#include <linux/devm-helpers.h> #include <linux/err.h> #include <linux/gpio/consumer.h> #include <linux/i2c.h> @@ -1165,7 +1166,10 @@ skip_gpio: } } - INIT_DELAYED_WORK(&chip->work, sbs_delayed_work); + rc = devm_delayed_work_autocancel(&client->dev, &chip->work, + sbs_delayed_work); + if (rc) + return rc; chip->power_supply = devm_power_supply_register(&client->dev, sbs_desc, &psy_cfg); @@ -1185,15 +1189,6 @@ exit_psupply: return rc; } -static int sbs_remove(struct i2c_client *client) -{ - struct sbs_info *chip = i2c_get_clientdata(client); - - cancel_delayed_work_sync(&chip->work); - - return 0; -} - #if defined CONFIG_PM_SLEEP static int sbs_suspend(struct device *dev) @@ -1248,7 +1243,6 @@ MODULE_DEVICE_TABLE(of, sbs_dt_ids); static struct i2c_driver sbs_battery_driver = { .probe_new = sbs_probe, - .remove = sbs_remove, .alert = sbs_alert, .id_table = sbs_id, .driver = { |