max1720x_battery: fix model loading retry process

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)
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 @@
 		} 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 @@
 			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;
 		}
 	}
 
diff --git a/max_m5.h b/max_m5.h
index 4e76aac..9620cff 100644
--- a/max_m5.h
+++ b/max_m5.h
@@ -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