[PATCH 07/10] power: supply: charger-manager: Don't start charging in cable nofitication

From: Jonathan Bakker
Date: Thu May 14 2020 - 19:05:27 EST


From: Jonghwa Lee <jonghwa3.lee@xxxxxxxxxxx>

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@xxxxxxxxxxx>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx>
Signed-off-by: Jonathan Bakker <xc-racer2@xxxxxxx>
---
drivers/power/supply/charger-manager.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/power/supply/charger-manager.c b/drivers/power/supply/charger-manager.c
index 9e4a7d368b08..27064a46a365 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);
}

/**
@@ -930,15 +931,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.
--
2.20.1