From 075b3e80951abe749edb3293187681872d3b09f4 Mon Sep 17 00:00:00 2001 From: Drew Abbott Date: Mon, 24 Aug 2020 14:55:20 -0500 Subject: [PATCH] Flip sign of current during taper check On Smith, charging current is positive and discharging current is negative. The flipped sign would always report discharging, so the current would always report as tapered. Change-Id: Ia2b93a1e943d20a52956e6068acae879d1934a8d Reviewed-on: https://gerrit.mot.com/1731691 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Ling Jin Submit-Approved: Jira Key Reviewed-by: Bernie Moreno --- .../power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c b/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c index bd6870fec7f7..d953ee53d7b0 100755 --- a/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c +++ b/drivers/power/qpnp-smbcharger-mmi/qpnp-smbcharger-mmi.c @@ -2248,7 +2248,12 @@ static bool mmi_has_current_tapered(int batt, struct smb_mmi_charger *chg, target_ma = allowed_fcc - TAPER_DROP_MA; if (batt_ma < 0) { - batt_ma *= -1; + if (chip->chrg_taper_cnt >= TAPER_COUNT) { + change_state = true; + chip->chrg_taper_cnt = 0; + } else + chip->chrg_taper_cnt++; + } else { if (batt_ma <= target_ma) if (chip->chrg_taper_cnt >= TAPER_COUNT) { change_state = true; @@ -2257,12 +2262,6 @@ static bool mmi_has_current_tapered(int batt, struct smb_mmi_charger *chg, chip->chrg_taper_cnt++; else chip->chrg_taper_cnt = 0; - } else { - if (chip->chrg_taper_cnt >= TAPER_COUNT) { - change_state = true; - chip->chrg_taper_cnt = 0; - } else - chip->chrg_taper_cnt++; } return change_state;