summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-05-03 11:31:45 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-05-05 15:15:52 +0000
commit0e98790ad5371770b5d87de3a9d6168397521616 (patch)
tree4057fe481aba28d7e341e384c90020ab8dcd1097 /common
parent9b0d1e10f37330ea0ba90e5875f4859e7541961d (diff)
downloadchrome-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.c37
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