From b593dc6aeedfdde0240e0927c7f8c3bfd300f97b Mon Sep 17 00:00:00 2001 From: Guocheng Wang Date: Sat, 7 Oct 2023 17:07:24 +0800 Subject: [PATCH] charge: Skip AICL when usb /charger cable is not connected The prerequisite for AICL is that VBUS is required, so when usb or charger cable is not connected (neither usbin nor dcin exists), we need to skip re-run AICL. Change-Id: I2d039fbfaa090ac3e7682e4ddb9889a278503484 Signed-off-by: Guocheng Wang Reviewed-on: https://gerrit.mot.com/2760500 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Wei Wei Reviewed-by: Huosheng Liao Submit-Approved: Jira Key --- drivers/power/supply/qcom/smb5-lib.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/power/supply/qcom/smb5-lib.c b/drivers/power/supply/qcom/smb5-lib.c index e0c9d9f1faa9..3c6c2e2bfd07 100644 --- a/drivers/power/supply/qcom/smb5-lib.c +++ b/drivers/power/supply/qcom/smb5-lib.c @@ -2654,6 +2654,10 @@ int smblib_run_aicl(struct smb_charger *chg, int type) if (stat & USBIN_SUSPEND_STS_BIT) return rc; + /* Neither usbin nor dcin exists so skip re-running AICL */ + if (!(stat & (USE_USBIN_BIT | USE_DCIN_BIT))) + return rc; + smblib_dbg(chg, PR_MISC, "re-running AICL\n"); stat = (type == RERUN_AICL) ? RERUN_AICL_BIT : RESTART_AICL_BIT;