diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2016-07-25 16:17:05 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-07-26 12:27:19 -0700 |
commit | 0564276033dd2615b95fa3f85152b9cc56c166d3 (patch) | |
tree | b5f633df97b9fcaa723bae90ef29e4eafbee96d6 | |
parent | dd57786342d0c6a71723c76d99f1e3c22c0462ac (diff) | |
download | chrome-ec-0564276033dd2615b95fa3f85152b9cc56c166d3.tar.gz |
charge_manager: Treat soft-disconnected batteries as not present
For the purpose of spoofing dual-role capability, treat
soft-disconnected batteries as not present, since they are not capable
of supplying a current until they are revived.
BUG=chrome-os-partner:55617
BRANCH=None
TEST=Manual on kevin w/ subsequent CL. Put battery into soft-disconnect
state. Attach charger and verify EC doesn't lose power and battery again
supplies current.
Change-Id: Ie6b83b3d4e1e33c4bbbd1a90450506e7dcd1dfb2
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/363003
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Stephen Barber <smbarber@chromium.org>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | common/charge_manager.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/common/charge_manager.c b/common/charge_manager.c index f7a2cc3490..e7a7d997c0 100644 --- a/common/charge_manager.c +++ b/common/charge_manager.c @@ -87,9 +87,14 @@ enum charge_manager_change_type { */ static int charge_manager_spoof_dualrole_capability(void) { - return (system_get_image_copy() == SYSTEM_IMAGE_RO && - system_is_locked()) || - (battery_is_present() != BP_YES); + int spoof_dualrole = (system_get_image_copy() == SYSTEM_IMAGE_RO && + system_is_locked()) || + (battery_is_present() != BP_YES); +#ifdef CONFIG_BATTERY_REVIVE_DISCONNECT + spoof_dualrole |= (battery_get_disconnect_state() != + BATTERY_NOT_DISCONNECTED); +#endif + return spoof_dualrole; } /** |