summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjohnwc_yeh <johnwc_yeh@compal.corp-partner.google.com>2022-09-12 16:38:51 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-13 05:25:48 +0000
commit7531bb61da19c4b2ea0c362e8e196c4772e06dec (patch)
tree89bad0afdbc8ca9681eb83dd0e696323ef3eca6d
parent4453b1e2bb1eacebc51de6e6cc2d82ec915f71ab (diff)
downloadchrome-ec-7531bb61da19c4b2ea0c362e8e196c4772e06dec.tar.gz
Xivu: Add helper function extpower_handle_update
This change adds a helper function extpower_handle_update() that performs all the necessary actions that need to be done on external power state change: 1. Call hook_notify with AC_CHANGE 2. Update memmap_batt_flags to update EC_BATT_FLAG_AC_PRESENT 3. Set host event for EC_HOST_EVENT_AC_CONNECTED or EC_HOST_EVENT_AC_DISCONNECTED. BUG=b:244831994 BRANCH=None TEST=Test on xivu,can resume from suspend when plug/unplug AC. Signed-off-by: johnwc_yeh <johnwc_yeh@compal.corp-partner.google.com> Change-Id: I48000be65184356217ec50415829e3b4099cf871 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3890026 Reviewed-by: Peter Marheine <pmarheine@chromium.org> Reviewed-by: SamSP Liu <samsp_liu2@compal.corp-partner.google.com> Reviewed-by: Andrew McRae <amcrae@google.com> Code-Coverage: Andrew McRae <amcrae@google.com>
-rw-r--r--zephyr/projects/nissa/xivu/src/charger.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/zephyr/projects/nissa/xivu/src/charger.c b/zephyr/projects/nissa/xivu/src/charger.c
index 8ad841572d..5021a55758 100644
--- a/zephyr/projects/nissa/xivu/src/charger.c
+++ b/zephyr/projects/nissa/xivu/src/charger.c
@@ -36,9 +36,17 @@ int extpower_is_present(void)
*/
__override void board_check_extpower(void)
{
+ static int last_extpower_present;
int extpower_present_p0 = 0;
int extpower_present_p1 = 0;
+ int extpower_present = extpower_is_present();
+
+ if (last_extpower_present ^ extpower_present)
+ extpower_handle_update(extpower_present);
+
+ last_extpower_present = extpower_present;
+
if (pd_is_connected(0))
extpower_present_p0 = extpower_is_present();
else if (pd_is_connected(1))