From d507330027d6739665b592e6a1c1bc6741e6e54d Mon Sep 17 00:00:00 2001 From: Joseph Chen Date: Mon, 19 Mar 2018 16:38:02 +0800 Subject: 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 --- drivers/power/rk816_battery.c | 8 ++++---- 1 file 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); -- cgit v1.2.3