summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Boichat <drinkcat@chromium.org>2018-01-24 12:25:31 +0800
committerDaisuke Nojiri <dnojiri@chromium.org>2018-02-19 10:33:13 -0800
commite85ec46db85d888ff5c176410184d4198f81da10 (patch)
tree79e1119e717c3d7a4e21ef394c22e5d229235838
parentabd7e17534bc356565d2914d05a71c7fd246156d (diff)
downloadchrome-ec-e85ec46db85d888ff5c176410184d4198f81da10.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,