diff options
author | Jonghwa Lee <jonghwa3.lee@samsung.com> | 2020-05-15 01:04:32 +0200 |
---|---|---|
committer | Sebastian Reichel <sre@kernel.org> | 2020-08-28 19:27:45 +0200 |
commit | 9434e4530d4690d3c5c869b4528364d7636108b3 (patch) | |
tree | 2dd386f6d8c07f5bad281f9afb6431bd124c47f6 /drivers/power/supply | |
parent | power: supply: charger-manager: Make decisions focussed on battery status (diff) | |
download | linux-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.c | 12 |
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. */ |