From 441266a71106a09ffbf98117b9c40ec0a29ae5cb Mon Sep 17 00:00:00 2001 From: huaqin85 Date: Fri, 21 Jan 2022 14:14:02 +0800 Subject: [PATCH] modules: Can't show turbo icon for quickly plugout/in usb Can't show turbo icon for quickly plugout/in turbo adapter sometimes. Change-Id: I263250386892e3072ad6c5c53bd6a6276eb1c183 Signed-off-by: huaqin85 Reviewed-on: https://gerrit.mot.com/2176291 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Wei Xu Reviewed-by: Huosheng Liao Submit-Approved: Jira Key --- .../mmi_discrete_turbo_charger/mmi_charger_core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/power/mmi_discrete_turbo_charger/mmi_charger_core.c b/drivers/power/mmi_discrete_turbo_charger/mmi_charger_core.c index ee0bdda8f28c..6e98f06e76be 100644 --- a/drivers/power/mmi_discrete_turbo_charger/mmi_charger_core.c +++ b/drivers/power/mmi_discrete_turbo_charger/mmi_charger_core.c @@ -850,15 +850,10 @@ static void kick_sm(struct mmi_charger_manager *chip, int ms) static void cancel_sm(struct mmi_charger_manager *chip) { - int ret; - cancel_delayed_work_sync(&chip->mmi_chrg_sm_work); flush_delayed_work(&chip->mmi_chrg_sm_work); mmi_chrg_policy_clear(chip); chip->sm_work_running = false; - ret = mmi_charger_write_iio_chan(chip, MMI_CP_ENABLE_STATUS, false); - if (ret) - mmi_chrg_err(chip, "Unable to write CP disable status: %d\n", ret); chip->pd_volt_max = pd_volt_max_init; chip->pd_curr_max = pd_curr_max_init; mmi_chrg_dbg(chip, PR_INTERRUPT, @@ -931,10 +926,15 @@ static void kick_qc3p_sm(struct mmi_charger_manager *chip, int ms) static void cancel_qc3p_sm(struct mmi_charger_manager *chip) { + int ret; + cancel_delayed_work_sync(&chip->mmi_qc3p_chrg_sm_work); flush_delayed_work(&chip->mmi_qc3p_chrg_sm_work); mmi_qc3p_chrg_policy_clear(chip); chip->qc3p_sm_work_running = false; + ret = mmi_charger_write_iio_chan(chip, MMI_CP_ENABLE_STATUS, false); + if (ret) + mmi_chrg_err(chip, "Unable to write CP disable status: %d\n", ret); chip->qc3p_volt_max = qc3p_volt_max_init; mmi_chrg_dbg(chip, PR_INTERRUPT, "cancel sync and flush mmi chrg qc3p sm work\n"); @@ -1159,10 +1159,10 @@ static void psy_changed_work_func(struct work_struct *work) && !chip->factory_mode) { kick_qc3p_sm(chip, 100); } else { - cancel_sm(chip); cancel_qc3p_sm(chip); - chip->pd_pps_support = false; chip->qc3p_active = false; + cancel_sm(chip); + chip->pd_pps_support = false; } return;