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