diff --git a/drivers/power/supply/qcom/smb5-lib.c b/drivers/power/supply/qcom/smb5-lib.c index 0b132558615c..8030323be8a5 100644 --- a/drivers/power/supply/qcom/smb5-lib.c +++ b/drivers/power/supply/qcom/smb5-lib.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "smb5-lib.h" #include "smb5-reg.h" #include "schgm-flash.h" @@ -5205,7 +5206,9 @@ static void smblib_eval_chg_termination(struct smb_charger *chg, u8 batt_status) * battery. Trigger the charge termination WA once charging is completed * to prevent overcharing. */ - if ((batt_status == TERMINATE_CHARGE) && (pval.intval == 100)) { + if ((batt_status == TERMINATE_CHARGE) && (pval.intval == 100) && + (ktime_to_ms(alarm_expires_remaining(/* alarm not pending */ + &chg->chg_termination_alarm)) <= 0)) { chg->cc_soc_ref = 0; chg->last_cc_soc = 0; chg->term_vbat_uv = 0;