From 16787760844b62aa1e1d40cc8e9b7d72ce046dc1 Mon Sep 17 00:00:00 2001 From: Wai-Hong Tam Date: Mon, 28 Sep 2020 17:41:06 -0700 Subject: charge_state_v2: Move the first battery_get_params to HOOK_INIT Other tasks read the params like state_of_charge at the beginning of their tasks. In the existing code, the first battery_get_params is called at the beginning of the charger task. It is not guaranteed the battery params are ready. This change moves it to the HOOK_INIT. BRANCH=None BUG=b:169453974 TEST=Cut off the battery, checked the first boot has PD-enabled, which uses the battery state_of_charge param to make the decision. Change-Id: Ie7bd31ee71fb3d1ea47a31910f0dfa7ac93cbcef Signed-off-by: Wai-Hong Tam Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2436760 Tested-by: Nitin Kolluru Reviewed-by: Aseda Aboagye --- common/charge_state_v2.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c index 7d6001bf4f..2bdac84634 100644 --- a/common/charge_state_v2.c +++ b/common/charge_state_v2.c @@ -1601,6 +1601,11 @@ void charger_init(void) /* Manual voltage/current set to off */ manual_voltage = -1; manual_current = -1; + /* + * Other tasks read the params like state_of_charge at the beginning of + * their tasks. Make them ready first. + */ + battery_get_params(&curr.batt); } DECLARE_HOOK(HOOK_INIT, charger_init, HOOK_PRIO_DEFAULT); @@ -1681,7 +1686,6 @@ void charger_task(void *u) * then use max input current limit so that we can pull as much power * as needed. */ - battery_get_params(&curr.batt); prev_bp = BP_NOT_INIT; curr.desired_input_current = get_desired_input_current( curr.batt.is_present, info); -- cgit v1.2.1