summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Chen <chenjh@rock-chips.com>2018-03-19 16:37:26 +0800
committerTao Huang <huangtao@rock-chips.com>2018-03-26 14:23:13 +0800
commit53033d6debf301a2327ce86870f1cee6e9426ec6 (patch)
tree12118002955b0e9e226f47bde8b0c94c340be9ea
parent521f06b4a28ce1c78a5e23024a9e89b8499c843c (diff)
power: rk818-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: I2957c464dfde1dde4b7dd32778d373904209d575 Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
-rw-r--r--drivers/power/rk818_battery.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/power/rk818_battery.c b/drivers/power/rk818_battery.c
index a5c1e704a359..d429bcc1fd77 100644
--- a/drivers/power/rk818_battery.c
+++ b/drivers/power/rk818_battery.c
@@ -1232,7 +1232,10 @@ static void rk818_bat_not_first_pwron(struct rk818_battery *di)
di->is_initialized = is_rk818_bat_initialized(di);
di->is_ocv_calib = is_rk818_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)
@@ -1241,9 +1244,6 @@ static void rk818_bat_not_first_pwron(struct rk818_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 = rk818_bat_get_ocv_voltage(di);
ocv_soc = rk818_bat_vol_to_ocvsoc(di, ocv_vol);