From 9a16d5fd3b012fab9f76bfa73f2c70dc42c84626 Mon Sep 17 00:00:00 2001 From: mahj8 Date: Wed, 9 Mar 2022 20:02:35 +0800 Subject: [PATCH] charging: charger pump quit when vbat < chrg_step_cv_volt sometime vbat less than chrg_step_cv_volt, so can't find charging step and then charger pump quit and switch to main charger. Change-Id: I5a91febbbac79e05576b4760866cc70903a3e829 Signed-off-by: mahj8 Reviewed-on: https://gerrit.mot.com/2211623 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Wei Xu Reviewed-by: Huosheng Liao Submit-Approved: Jira Key --- .../power/mmi_discrete_turbo_charger/mmi_qc3p_cp_policy.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/power/mmi_discrete_turbo_charger/mmi_qc3p_cp_policy.c b/drivers/power/mmi_discrete_turbo_charger/mmi_qc3p_cp_policy.c index d72728bca57c..b61666bd1944 100644 --- a/drivers/power/mmi_discrete_turbo_charger/mmi_qc3p_cp_policy.c +++ b/drivers/power/mmi_discrete_turbo_charger/mmi_qc3p_cp_policy.c @@ -237,7 +237,7 @@ void mmi_qc3p_chrg_enable_all_cp(struct mmi_charger_manager *chip, int val) #define QC3P_DISABLE_CHRG_LIMIT -1 #define QC3P_CP_CHRG_SOC_LIMIT 90 #define QC3P_CONT_PWR_CNT 5 -#define CP_CV_VOLT_TOLERANCE 40000 //40mV +#define CP_CV_VOLT_TOLERANCE 10000 //10mV void qc3p_clear_chg_manager(struct mmi_charger_manager *chip) { @@ -796,7 +796,7 @@ void mmi_qc3p_chrg_sm_work_func(struct work_struct *work) goto schedule; } - if (vbatt_volt >= (chrg_step->chrg_step_cv_volt - CP_CV_VOLT_TOLERANCE) + if (((vbatt_volt + CP_CV_VOLT_TOLERANCE) >= chrg_step->chrg_step_cv_volt) && ((!chrg_step->last_step && ibatt_curr < chrg_step->chrg_step_cv_tapper_curr) || ibatt_curr < chrg_list->chrg_dev[CP_MASTER]->charging_curr_min)) { @@ -808,12 +808,12 @@ void mmi_qc3p_chrg_sm_work_func(struct work_struct *work) "chrg step %d, ibatt %dmA\n", chrg_step->pres_chrg_step, ibatt_curr); mmi_find_chrg_step(chip, - chip->pres_temp_zone, vbatt_volt); + chip->pres_temp_zone, vbatt_volt + CP_CV_VOLT_TOLERANCE); mmi_chrg_qc3p_sm_move_state(chip, PM_QC3P_STATE_CP_QUIT); heartbeat_dely_ms = QC3P_HEARTBEAT_NEXT_STATE_MS; } else { if (mmi_find_chrg_step(chip, - chip->pres_temp_zone, vbatt_volt)) { + chip->pres_temp_zone, vbatt_volt + CP_CV_VOLT_TOLERANCE)) { heartbeat_dely_ms = QC3P_HEARTBEAT_NEXT_STATE_MS; mmi_chrg_info(chip,"Jump to next chrg step\n"); mmi_chrg_qc3p_sm_move_state(chip,