summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Boichat <drinkcat@chromium.org>2018-01-24 12:25:31 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-02-09 07:55:34 -0800
commitb34b34e6e867f832f134c27790937b35eb6debef (patch)
tree290026b5614a3924b576ed658f0f0c6e09ced888
parentabdb022a2be9cac6a108b69253ccba1dd7e09ba3 (diff)
downloadchrome-ec-b34b34e6e867f832f134c27790937b35eb6debef.tar.gz
charge_state_v2: No base/lid power transfer in S0ix/S5
BRANCH=none BUG=b:71881017 TEST=Suspend system, see that base does not provide power to lid, and vice-versa. Change-Id: I54e26c9b8decff2afdebc34adb62d4f5cef18e37 Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/882524 Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r--common/charge_state_v2.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c
index ebcf8cc263..5c92ae0bf0 100644
--- a/common/charge_state_v2.c
+++ b/common/charge_state_v2.c
@@ -464,6 +464,16 @@ static void charge_allocate_input_current_limit(void)
prev_lid_system_power = -1;
prev_lid_battery_power = -1;
+ /*
+ * System is suspended/off, let the lid and base run on their
+ * own power.
+ */
+ if (chipset_in_state(CHIPSET_STATE_ANY_OFF |
+ CHIPSET_STATE_ANY_SUSPEND)) {
+ set_base_lid_current(0, 0, 0, 0);
+ return;
+ }
+
if (charge_base > db_policy.min_charge_base_otg) {
int lid_current = db_policy.max_base_to_lid_current;
int base_current = add_margin(lid_current,