From 846d01788513e375b64fb73205cd58d51525451e 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 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3869322 Commit-Queue: Daisuke Nojiri Auto-Submit: Daisuke Nojiri Tested-by: Daisuke Nojiri --- 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 64fc7332ac..31cef7b255 100644 --- a/common/charge_state_v2.c +++ b/common/charge_state_v2.c @@ -1518,6 +1518,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); @@ -1592,7 +1597,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