summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Chen <chenjh@rock-chips.com>2018-03-19 16:38:02 +0800
committerTao Huang <huangtao@rock-chips.com>2018-03-26 14:23:13 +0800
commitd507330027d6739665b592e6a1c1bc6741e6e54d (patch)
tree9c3109313f93656e490b6d7d2d01adcb77630dd1
parent53033d6debf301a2327ce86870f1cee6e9426ec6 (diff)
power: rk816-battery: judge 'is_initialized' firstly
U-Boot fuel gauge may do ocv calibration which would update rsoc, and it would lead a wrong halt judgement for kernel fuel gauge driver. So we judege is_initialized firstly. Change-Id: Ifed343b85d3f7e7a42545fc57efe460338f30e17 Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
-rw-r--r--drivers/power/rk816_battery.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/power/rk816_battery.c b/drivers/power/rk816_battery.c
index 33c5a0c5acb8..4ef0585f1ca0 100644
--- a/drivers/power/rk816_battery.c
+++ b/drivers/power/rk816_battery.c
@@ -1805,7 +1805,10 @@ static void rk816_bat_not_first_pwron(struct rk816_battery *di)
di->is_initialized = is_rk816_bat_initialized(di);
di->is_ocv_calib = is_rk816_bat_ocv_valid(di);
- if (di->is_halt) {
+ if (di->is_initialized) {
+ BAT_INFO("initialized yet..\n");
+ goto finish;
+ } else if (di->is_halt) {
BAT_INFO("system halt last time... cap: pre=%d, now=%d\n",
pre_cap, now_cap);
if (now_cap < 0)
@@ -1814,9 +1817,6 @@ static void rk816_bat_not_first_pwron(struct rk816_battery *di)
pre_cap = now_cap;
pre_soc = di->rsoc;
goto finish;
- } else if (di->is_initialized) {
- BAT_INFO("initialized yet..\n");
- goto finish;
} else if (di->is_ocv_calib) {
ocv_vol = rk816_bat_get_ocv_voltage(di);
ocv_soc = rk816_bat_vol_to_ocvsoc(di, ocv_vol);