diff options
author | Wai-Hong Tam <waihong@google.com> | 2020-09-28 17:41:06 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-09-30 03:28:18 +0000 |
commit | 16787760844b62aa1e1d40cc8e9b7d72ce046dc1 (patch) | |
tree | 4b126374cb78efaa1fd6376fce2205aa139a524c | |
parent | 71ada9f16038b6e2fd16cb63db0792de503b8acc (diff) | |
download | chrome-ec-16787760844b62aa1e1d40cc8e9b7d72ce046dc1.tar.gz |
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 <waihong@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2436760
Tested-by: Nitin Kolluru <nkolluru@google.com>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r-- | common/charge_state_v2.c | 6 |
1 files changed, 5 insertions, 1 deletions
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); |