max1720x_battery: cleanup for 189251616
Bug: 189251616
Signed-off-by: AleX Pelosi <[email protected]>
Change-Id: I355c0a120f578359d90ed60b2a323dc32c7df51b
diff --git a/max1720x_battery.c b/max1720x_battery.c
index 6772b38..06fa2e6 100644
--- a/max1720x_battery.c
+++ b/max1720x_battery.c
@@ -1455,7 +1455,8 @@
int err, cycle_count;
u16 reg_cycle;
- /* Corner case: battery under 3V hit POR without irq.
+ /*
+ * Corner case: battery under 3V hit POR without irq.
* cycles reset in this situation, incorrect data
*/
if (chip->por)
@@ -1949,21 +1950,21 @@
} else if (chip->fake_battery != -1) {
val->intval = chip->fake_battery;
} else {
+
err = REGMAP_READ(map, MAX1720X_STATUS, &data);
if (err < 0)
break;
/* BST is 0 when the battery is present */
- val->intval = (((u16) data) & MAX1720X_STATUS_BST)
- ? 0 : 1;
+ val->intval = !(data & MAX1720X_STATUS_BST);
+ if (!val->intval)
+ break;
- if (((u16) data) & MAX1720X_STATUS_POR) {
- chip->por = true;
- /* clear POR and reload model */
- if (chip->model_ok)
- max1720x_fg_irq_thread_fn(-1, chip);
- } else {
- chip->por = false;
+ /* chip->por prevent garbage in cycle count */
+ chip->por = data & MAX1720X_STATUS_POR;
+ if (chip->por && chip->model_ok) {
+ /* trigger reload model and clear of POR */
+ max1720x_fg_irq_thread_fn(-1, chip);
}
}
break;