summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2023-04-15 20:23:38 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-06-09 10:22:48 +0200
commitc82539aa3da32141e5d18de8bc00dba5c2ef6b42 (patch)
tree5c0ceb77a55b26e06a181e43869e0fbff9bf3d38 /drivers
parent8aa44c489bf10c2307813b3d1d7f08256edca8c1 (diff)
downloadlinux-stable-c82539aa3da32141e5d18de8bc00dba5c2ef6b42.tar.gz
linux-stable-c82539aa3da32141e5d18de8bc00dba5c2ef6b42.tar.bz2
linux-stable-c82539aa3da32141e5d18de8bc00dba5c2ef6b42.zip
power: supply: bq27xxx: After charger plug in/out wait 0.5s for things to stabilize
[ Upstream commit 59a99cd462fbdf71f4e845e09f37783035088b4f ] bq27xxx_external_power_changed() gets called when the charger is plugged in or out. Rather then immediately scheduling an update wait 0.5 seconds for things to stabilize, so that e.g. the (dis)charge current is stable when bq27xxx_battery_update() runs. Fixes: 740b755a3b34 ("bq27x00: Poll battery state") Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/power/supply/bq27xxx_battery.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c
index 37b5743ce35e..49d351027d0e 100644
--- a/drivers/power/supply/bq27xxx_battery.c
+++ b/drivers/power/supply/bq27xxx_battery.c
@@ -1817,8 +1817,8 @@ static void bq27xxx_external_power_changed(struct power_supply *psy)
{
struct bq27xxx_device_info *di = power_supply_get_drvdata(psy);
- cancel_delayed_work_sync(&di->work);
- schedule_delayed_work(&di->work, 0);
+ /* After charger plug in/out wait 0.5s for things to stabilize */
+ mod_delayed_work(system_wq, &di->work, HZ / 2);
}
int bq27xxx_battery_setup(struct bq27xxx_device_info *di)