From 616e6682fb8719ec3fdf2d85fe9dc636f9745191 Mon Sep 17 00:00:00 2001 From: xuwt2 Date: Fri, 23 Aug 2019 14:23:59 +0800 Subject: [PATCH] mmi_parallel_charger: optimize temp zone structure -1, set temp_c as signed constant -2, add conditional judgment to prevent invalid temp zone Change-Id: I7ed0fe09034c5669f1538954ebf871e1ed7cf0e7 Signed-off-by: xuwt2 Reviewed-on: https://gerrit.mot.com/1408609 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Jianqi Yang Submit-Approved: Jira Key Reviewed-on: https://gerrit.mot.com/1893549 Reviewed-by: Xiangpo Zhao Reviewed-by: Wei Xu --- drivers/power/mmi_parallel_charger/mmi_charger_core.c | 5 +++-- drivers/power/mmi_parallel_charger/mmi_charger_core.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/power/mmi_parallel_charger/mmi_charger_core.c b/drivers/power/mmi_parallel_charger/mmi_charger_core.c index 0593fe3e6436..d4c55630bfa1 100644 --- a/drivers/power/mmi_parallel_charger/mmi_charger_core.c +++ b/drivers/power/mmi_parallel_charger/mmi_charger_core.c @@ -113,7 +113,7 @@ bool mmi_find_temp_zone(struct mmi_charger_manager *chip, int temp_c) colder_t = zones[prev_zone - 1].temp_c; } - if (temp_c < MIN_TEMP_C) + if (temp_c <= MIN_TEMP_C) chip->pres_temp_zone = ZONE_COLD; else if (temp_c >= max_temp) chip->pres_temp_zone = ZONE_HOT; @@ -151,7 +151,8 @@ bool mmi_find_chrg_step(struct mmi_charger_manager *chip, int temp_zone, int vba } if (chip->pres_temp_zone == ZONE_HOT || - chip->pres_temp_zone == ZONE_COLD) { + chip->pres_temp_zone == ZONE_COLD || + chip->pres_temp_zone < ZONE_FIRST) { mmi_chrg_err(chip, "pres temp zone is HOT or COLD, " "can't find chrg step\n"); return false; diff --git a/drivers/power/mmi_parallel_charger/mmi_charger_core.h b/drivers/power/mmi_parallel_charger/mmi_charger_core.h index 7cd51621a4aa..3c5c3a5a828d 100644 --- a/drivers/power/mmi_parallel_charger/mmi_charger_core.h +++ b/drivers/power/mmi_parallel_charger/mmi_charger_core.h @@ -101,7 +101,7 @@ struct mmi_chrg_step_power { }; struct mmi_chrg_temp_zone { - u32 temp_c; /*temperature*/ + int temp_c; /*temperature*/ struct mmi_chrg_step_power *chrg_step_power; };