summaryrefslogtreecommitdiffstats
path: root/drivers/power/supply
diff options
context:
space:
mode:
authorJonghwa Lee <jonghwa3.lee@samsung.com>2020-05-15 01:04:32 +0200
committerSebastian Reichel <sre@kernel.org>2020-08-28 19:27:45 +0200
commit9434e4530d4690d3c5c869b4528364d7636108b3 (patch)
tree2dd386f6d8c07f5bad281f9afb6431bd124c47f6 /drivers/power/supply
parentpower: supply: charger-manager: Make decisions focussed on battery status (diff)
downloadlinux-9434e4530d4690d3c5c869b4528364d7636108b3.tar.xz
linux-9434e4530d4690d3c5c869b4528364d7636108b3.zip
power: supply: charger-manager: Don't start charging in cable nofitication
Prevents direct charging control in cable notification and only set the input current limit according to cable type. Leave the enabling of charing to cm_monitor() where charging management proceeds. We may lose a few ms to enable charging compared to before, but it's more important that charging is enabled always in safe context. Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Jonathan Bakker <xc-racer2@live.ca> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Diffstat (limited to 'drivers/power/supply')
-rw-r--r--drivers/power/supply/charger-manager.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/power/supply/charger-manager.c b/drivers/power/supply/charger-manager.c
index d10bf89328a0..d3b2ed3ef720 100644
--- a/drivers/power/supply/charger-manager.c
+++ b/drivers/power/supply/charger-manager.c
@@ -907,7 +907,8 @@ static void charger_extcon_work(struct work_struct *work)
cable->min_uA, cable->max_uA);
}
- try_charger_enable(cable->cm, cable->attached);
+ cancel_delayed_work(&cm_monitor_work);
+ queue_delayed_work(cm_wq, &cm_monitor_work, 0);
}
/**
@@ -931,15 +932,6 @@ static int charger_extcon_notifier(struct notifier_block *self,
cable->attached = event;
/*
- * Setup monitoring to check battery state
- * when charger cable is attached.
- */
- if (cable->attached && is_polling_required(cable->cm)) {
- cancel_work_sync(&setup_polling);
- schedule_work(&setup_polling);
- }
-
- /*
* Setup work for controlling charger(regulator)
* according to charger cable.
*/