fuel gauge: rk817: smooth the dispaly soc when system reboot

There is a difference between the display soc and real soc,
so it can not be directly equivalent.

Change-Id: I99dfa1e3952693053ccd853cd5802feb7eebf8b0
Signed-off-by: shengfei Xu <xsf@rock-chips.com>
This commit is contained in:
shengfei Xu 2018-07-13 09:39:24 +08:00 committed by Jianhong Chen
parent faa7eb0f76
commit 852c7866fd
1 changed files with 8 additions and 1 deletions

View File

@ -811,12 +811,19 @@ static void rk817_bat_not_first_pwron(struct rk817_battery_device *battery)
} else {
battery->remain_cap = rk817_bat_get_capacity_uah(battery);
battery->rsoc = rk817_bat_get_rsoc(battery);
pre_soc = battery->rsoc;
if (pre_cap < battery->remain_cap / 1000) {
pre_soc += (battery->remain_cap - pre_cap * 1000) * 100 / battery->fcc;
if (pre_soc > 100000)
pre_soc = 100000;
}
pre_cap = battery->remain_cap / 1000;
goto finish;
}
finish:
battery->dsoc = pre_soc;
if (battery->dsoc > 100000)
battery->dsoc = 100000;
battery->nac = pre_cap;
if (battery->nac < 0)
battery->nac = 0;