summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-05-03 11:15:08 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-05-05 15:15:44 +0000
commit9b0d1e10f37330ea0ba90e5875f4859e7541961d (patch)
tree521577bbebcbccadc2f28e7fedf4f9dc775a7c0e
parent4896dd44bc8601d132ee4777f8a7afddbffbcd3e (diff)
downloadchrome-ec-9b0d1e10f37330ea0ba90e5875f4859e7541961d.tar.gz
charger: Avoid an #ifdef with base-update function
Take this function outside the #ifdef so we can call it behind an if() statement. Rename it with a base_ prefix so it is clear which functions relate to the base, and could perhaps be moved to another file. This makes no functional change. Unfortunately we still need the #ifdef in the function due to some variables which are declared behind that #ifdef. BUG=b:218332694 TEST=zmake build dev-posix Change-Id: I102a5b6f98b731b9a2cb42c070b9bd1f20e25f99 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4501288 Commit-Queue: Simon Glass <sjg@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Tested-by: Simon Glass <sjg@chromium.org>
-rw-r--r--common/charge_state_v2.c119
1 files changed, 60 insertions, 59 deletions
diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c
index 1dcd046078..4d01cd9ed3 100644
--- a/common/charge_state_v2.c
+++ b/common/charge_state_v2.c
@@ -309,62 +309,6 @@ static const struct dual_battery_policy db_policy = {
(total_power) -= val_capped; \
} while (0)
-/* Update base battery information */
-static void update_base_battery_info(void)
-{
- struct ec_response_battery_dynamic_info *const bd =
- &battery_dynamic[BATT_IDX_BASE];
-
- base_connected = board_is_base_connected();
-
- if (!base_connected) {
- const int invalid_flags = EC_BATT_FLAG_INVALID_DATA;
- /* Invalidate static/dynamic information */
- if (bd->flags != invalid_flags) {
- bd->flags = invalid_flags;
-
- host_set_single_event(EC_HOST_EVENT_BATTERY);
- host_set_single_event(EC_HOST_EVENT_BATTERY_STATUS);
- }
- charge_base = -1;
- base_responsive = 0;
- prev_current_base = 0;
- prev_allow_charge_base = 0;
- } else if (base_responsive) {
- int old_flags = bd->flags;
- int flags_changed;
- int old_full_capacity = bd->full_capacity;
-
- ec_ec_client_base_get_dynamic_info();
- flags_changed = (old_flags != bd->flags);
- /* Fetch static information when flags change. */
- if (flags_changed)
- ec_ec_client_base_get_static_info();
-
- battery_memmap_refresh(BATT_IDX_BASE);
-
- /* Newly connected battery, or change in capacity. */
- if (old_flags & EC_BATT_FLAG_INVALID_DATA ||
- ((old_flags & EC_BATT_FLAG_BATT_PRESENT) !=
- (bd->flags & EC_BATT_FLAG_BATT_PRESENT)) ||
- old_full_capacity != bd->full_capacity)
- host_set_single_event(EC_HOST_EVENT_BATTERY);
-
- if (flags_changed)
- host_set_single_event(EC_HOST_EVENT_BATTERY_STATUS);
-
- /* Update charge_base */
- if (bd->flags & (BATT_FLAG_BAD_FULL_CAPACITY |
- BATT_FLAG_BAD_REMAINING_CAPACITY))
- charge_base = -1;
- else if (bd->full_capacity > 0)
- charge_base = 100 * bd->remaining_capacity /
- bd->full_capacity;
- else
- charge_base = 0;
- }
-}
-
/**
* Setup current settings for base, and record previous values, if the base
* is responsive.
@@ -763,6 +707,64 @@ static void charge_allocate_input_current_limit(void)
}
#endif /* CONFIG_EC_EC_COMM_BATTERY_CLIENT */
+/* Update base battery information */
+static void base_update_battery_info(void)
+{
+#ifdef CONFIG_EC_EC_COMM_BATTERY_CLIENT
+ struct ec_response_battery_dynamic_info *const bd =
+ &battery_dynamic[BATT_IDX_BASE];
+
+ base_connected = board_is_base_connected();
+
+ if (!base_connected) {
+ const int invalid_flags = EC_BATT_FLAG_INVALID_DATA;
+ /* Invalidate static/dynamic information */
+ if (bd->flags != invalid_flags) {
+ bd->flags = invalid_flags;
+
+ host_set_single_event(EC_HOST_EVENT_BATTERY);
+ host_set_single_event(EC_HOST_EVENT_BATTERY_STATUS);
+ }
+ charge_base = -1;
+ base_responsive = 0;
+ prev_current_base = 0;
+ prev_allow_charge_base = 0;
+ } else if (base_responsive) {
+ int old_flags = bd->flags;
+ int flags_changed;
+ int old_full_capacity = bd->full_capacity;
+
+ ec_ec_client_base_get_dynamic_info();
+ flags_changed = (old_flags != bd->flags);
+ /* Fetch static information when flags change. */
+ if (flags_changed)
+ ec_ec_client_base_get_static_info();
+
+ battery_memmap_refresh(BATT_IDX_BASE);
+
+ /* Newly connected battery, or change in capacity. */
+ if (old_flags & EC_BATT_FLAG_INVALID_DATA ||
+ ((old_flags & EC_BATT_FLAG_BATT_PRESENT) !=
+ (bd->flags & EC_BATT_FLAG_BATT_PRESENT)) ||
+ old_full_capacity != bd->full_capacity)
+ host_set_single_event(EC_HOST_EVENT_BATTERY);
+
+ if (flags_changed)
+ host_set_single_event(EC_HOST_EVENT_BATTERY_STATUS);
+
+ /* Update charge_base */
+ if (bd->flags & (BATT_FLAG_BAD_FULL_CAPACITY |
+ BATT_FLAG_BAD_REMAINING_CAPACITY))
+ charge_base = -1;
+ else if (bd->full_capacity > 0)
+ charge_base = 100 * bd->remaining_capacity /
+ bd->full_capacity;
+ else
+ charge_base = 0;
+ }
+#endif /* CONFIG_EC_EC_COMM_BATTERY_CLIENT */
+}
+
static const char *const state_list[] = { "idle", "discharge", "charge",
"precharge" };
BUILD_ASSERT(ARRAY_SIZE(state_list) == NUM_STATES_V2);
@@ -1764,9 +1766,8 @@ void charger_task(void *u)
}
}
-#ifdef CONFIG_EC_EC_COMM_BATTERY_CLIENT
- update_base_battery_info();
-#endif
+ if (IS_ENABLED(CONFIG_EC_EC_COMM_BATTERY_CLIENT))
+ base_update_battery_info();
charger_get_params(&curr.chg);
battery_get_params(&curr.batt);