diff options
author | Joseph Chen <chenjh@rock-chips.com> | 2018-03-19 16:37:26 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2018-03-26 14:23:13 +0800 |
commit | 53033d6debf301a2327ce86870f1cee6e9426ec6 (patch) | |
tree | 12118002955b0e9e226f47bde8b0c94c340be9ea | |
parent | 521f06b4a28ce1c78a5e23024a9e89b8499c843c (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.c | 8 |
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); |