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