diff options
author | Jenny Ho <hsiufangho@google.com> | 2023-11-29 17:59:58 +0800 |
---|---|---|
committer | Jenny Ho <hsiufangho@google.com> | 2023-11-30 01:19:26 +0000 |
commit | a5ca9cc310f5338191f4f6daf3d318a395fb54f0 (patch) | |
tree | 05ddb1c3149a064c1879baa288dbc2485aaccd3c | |
parent | 23c827c0534a65916b5699e9dccff41c07987096 (diff) | |
download | bms-android-gs-felix-5.10-android14-qpr2-beta.tar.gz |
max1720x_battery: fix model loading retry processandroid-u-qpr2-beta-3_r0.7android-u-qpr2-beta-3_r0.6android-u-qpr2-beta-3_r0.5android-u-qpr2-beta-3_r0.4android-u-qpr2-beta-3_r0.3android-u-qpr2-beta-3_r0.2android-u-qpr2-beta-3.1_r0.7android-u-qpr2-beta-3.1_r0.5android-u-qpr2-beta-3.1_r0.4android-u-qpr2-beta-3.1_r0.3android-u-qpr2-beta-3.1_r0.2android-u-qpr2-beta-3.1_r0.1android-14.0.0_r0.76android-14.0.0_r0.75android-14.0.0_r0.74android-14.0.0_r0.73android-14.0.0_r0.72android-14.0.0_r0.71android-14.0.0_r0.66android-14.0.0_r0.65android-14.0.0_r0.64android-14.0.0_r0.63android-14.0.0_r0.62android-14.0.0_r0.61android-14.0.0_r0.56android-14.0.0_r0.55android-14.0.0_r0.54android-14.0.0_r0.53android-14.0.0_r0.52android-14.0.0_r0.51android-gs-tangorpro-5.10-android14-qpr2-betaandroid-gs-tangorpro-5.10-android14-qpr2android-gs-raviole-5.10-android14-qpr2-betaandroid-gs-raviole-5.10-android14-qpr2android-gs-pantah-5.10-android14-qpr2-betaandroid-gs-pantah-5.10-android14-qpr2android-gs-lynx-5.10-android14-qpr2-betaandroid-gs-lynx-5.10-android14-qpr2android-gs-felix-5.10-android14-qpr2-betaandroid-gs-felix-5.10-android14-qpr2android-gs-bluejay-5.10-android14-qpr2-betaandroid-gs-bluejay-5.10-android14-qpr2
model load work runs when model_reload >= MAX_M5_LOAD_MODEL_REQUEST,
accumulating model_reload is a reasonable approach. The POR bit is
only cleared when the model is loaded successfully
Bug: 313831863
Change-Id: I0125cd4b4710fa6c5ce832529b5c404445def545
Signed-off-by: Jenny Ho <hsiufangho@google.com>
(cherry-pick from commit ba5886160fe4dc8660cfd1f3bc148139539eda7b)
-rw-r--r-- | max1720x_battery.c | 14 | ||||
-rw-r--r-- | max_m5.h | 2 |
2 files changed, 8 insertions, 8 deletions
diff --git a/max1720x_battery.c b/max1720x_battery.c index 8acbbf0..2916c8a 100644 --- a/max1720x_battery.c +++ b/max1720x_battery.c @@ -2955,12 +2955,12 @@ static irqreturn_t max1720x_fg_irq_thread_fn(int irq, void *obj) } else { dev_warn(chip->dev, "POR is set(%04x), model reload:%d\n", fg_status, chip->model_reload); - /* trigger model load if not on-going */ - if (chip->model_reload != MAX_M5_LOAD_MODEL_REQUEST) { - err = max1720x_model_reload(chip, false); - if (err < 0) - fg_status_clr &= ~MAX1720X_STATUS_POR; - } + /* + * trigger model load if not on-going, clear POR only when + * model loading done successfully + */ + if (chip->model_reload != MAX_M5_LOAD_MODEL_REQUEST) + max1720x_model_reload(chip, false); } mutex_unlock(&chip->model_lock); } @@ -4463,7 +4463,7 @@ static void max1720x_model_work(struct work_struct *work) chip->model_reload = MAX_M5_LOAD_MODEL_DISABLED; chip->model_ok = false; } else if (chip->model_reload > MAX_M5_LOAD_MODEL_IDLE) { - chip->model_reload -= 1; + chip->model_reload += 1; } } @@ -25,7 +25,7 @@ /* change to 1 or 0 to load FG model with default parameters on startup */ #define MAX_M5_LOAD_MODEL_DISABLED -1 #define MAX_M5_LOAD_MODEL_IDLE 0 -#define MAX_M5_LOAD_MODEL_REQUEST 5 +#define MAX_M5_LOAD_MODEL_REQUEST 1 #define MAX_M5_FG_MODEL_START 0x80 #define MAX_M5_FG_MODEL_SIZE 48 |