diff options
author | Simon Glass <sjg@chromium.org> | 2023-05-03 11:31:45 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-05-05 15:15:52 +0000 |
commit | 0e98790ad5371770b5d87de3a9d6168397521616 (patch) | |
tree | 4057fe481aba28d7e341e384c90020ab8dcd1097 /common | |
parent | 9b0d1e10f37330ea0ba90e5875f4859e7541961d (diff) | |
download | chrome-ec-0e98790ad5371770b5d87de3a9d6168397521616.tar.gz |
charger: Move state-of-charge-change handling into a function
Move this into its own function so simplify the main loop.
Fix a comment in the hook at the same time.
This makes no functional change.
BUG=b:218332694
TEST=zmake build dev-posix
Change-Id: Ibdee116e10ab10265ad1718a76ed3401475ad235
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4501289
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Commit-Queue: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/charge_state_v2.c | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c index 4d01cd9ed3..c70da4b326 100644 --- a/common/charge_state_v2.c +++ b/common/charge_state_v2.c @@ -1700,6 +1700,26 @@ static void base_check_extpower(void) #endif } +/* check for and handle any state-of-charge change with the battery */ +void check_battery_change_soc(void) +{ + if ((!(curr.batt.flags & BATT_FLAG_BAD_STATE_OF_CHARGE) && + curr.batt.state_of_charge != prev_charge) || +#ifdef CONFIG_EC_EC_COMM_BATTERY_CLIENT + (charge_base != prev_charge_base) || +#endif + (is_full != prev_full) || (curr.state != prev_state) || + (charge_get_display_charge() != prev_disp_charge)) { + show_charging_progress(); + prev_charge = curr.batt.state_of_charge; + prev_disp_charge = charge_get_display_charge(); +#ifdef CONFIG_EC_EC_COMM_BATTERY_CLIENT + prev_charge_base = charge_base; +#endif + hook_notify(HOOK_BATTERY_SOC_CHANGE); + } +} + /* Main loop */ void charger_task(void *u) { @@ -1945,21 +1965,8 @@ void charger_task(void *u) /* Run battery soc check for setting the current limit. */ current_limit_battery_soc(); - if ((!(curr.batt.flags & BATT_FLAG_BAD_STATE_OF_CHARGE) && - curr.batt.state_of_charge != prev_charge) || -#ifdef CONFIG_EC_EC_COMM_BATTERY_CLIENT - (charge_base != prev_charge_base) || -#endif - (is_full != prev_full) || (curr.state != prev_state) || - (charge_get_display_charge() != prev_disp_charge)) { - show_charging_progress(); - prev_charge = curr.batt.state_of_charge; - prev_disp_charge = charge_get_display_charge(); -#ifdef CONFIG_EC_EC_COMM_BATTERY_CLIENT - prev_charge_base = charge_base; -#endif - hook_notify(HOOK_BATTERY_SOC_CHANGE); - } + check_battery_change_soc(); + prev_full = is_full; #ifndef CONFIG_CHARGER_MAINTAIN_VBAT |