summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2016-07-25 16:17:05 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-07-26 12:27:19 -0700
commit0564276033dd2615b95fa3f85152b9cc56c166d3 (patch)
treeb5f633df97b9fcaa723bae90ef29e4eafbee96d6
parentdd57786342d0c6a71723c76d99f1e3c22c0462ac (diff)
downloadchrome-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.c11
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;
}
/**