summaryrefslogtreecommitdiff
path: root/power
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2020-07-31 17:20:38 +0000
committerCommit Bot <commit-bot@chromium.org>2020-08-01 00:12:19 +0000
commit744a611d80219aa430501e2a1923e2d06af7fe0a (patch)
treed129f1a8027faee950f2b7036cd11d77ead26771 /power
parenteaffee8a2567be9be30a2290456dc3d4c0f39147 (diff)
downloadchrome-ec-744a611d80219aa430501e2a1923e2d06af7fe0a.tar.gz
Revert "power: Clear AP_IDLE when waking up by PB or LID"
This reverts commit 27ee378bb78a299a0983379be83eb6d55860b4ae. Reason for revert: b/162508724 A wake-up source from hibernation needs to be determined only by RO. Reverting back to the original implementation: CL:2236589. Original change's description: > power: Clear AP_IDLE when waking up by PB or LID > > Currently, AP_IDLE is cleared when EC wakes up by the power button or > the lid open. > > This patch extends the logic from CONFIG_EXTPOWER_GPIO to > CONFIG_EXTPOWER so that the bug (chromium:1073960) can be also fixed > on the boards using non-GPIO method for extpower_is_present. > > Tested as follows on Trembyle: > 1. Put DUT in hibernation. > 2. Wake up DUT and observe: > a. When waking up by power button, AP is turned on. > b. When waking up by lid open, AP is turned on. > c. When waking up by AC, AP is left idle. > > BUG=b:157077589, chromium:1073960, b:159350276 > BRANCH=none > TEST=See above. > > Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> > Change-Id: I944aaac036ce58659e81b7021e52a3291f31e951 > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2283946 > Reviewed-by: Jett Rink <jettrink@chromium.org> Bug: b:157077589 Bug: chromium:1073960 Bug: b:159350276 Bug: b:162508724 Change-Id: Iaf9d0af2ca8c48bbf2529c4ba05493837dd76287 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2333106 Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Auto-Submit: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'power')
-rw-r--r--power/common.c25
1 files changed, 1 insertions, 24 deletions
diff --git a/power/common.c b/power/common.c
index 6dc0ebc666..0cdabca0fa 100644
--- a/power/common.c
+++ b/power/common.c
@@ -440,13 +440,7 @@ static enum power_state power_common_state(enum power_state state)
&target, now)) {
case CRITICAL_SHUTDOWN_HIBERNATE:
CPRINTS("Hibernate due to G3 idle");
- /*
- * Set AP_IDLE when hibernating so that AC plug
- * won't boot the system. If EFS2 isn't enabled,
- * we need to boot the AP to get PD power though
- * it's inconsistent with the S5 behavior.
- */
- if (IS_ENABLED(CONFIG_EXTPOWER) &&
+ if (IS_ENABLED(CONFIG_EXTPOWER_GPIO) &&
IS_ENABLED(CONFIG_VBOOT_EFS2)) {
uint32_t reset_flags;
reset_flags = chip_read_reset_flags() |
@@ -737,23 +731,6 @@ static void power_ac_change(void)
DECLARE_HOOK(HOOK_AC_CHANGE, power_ac_change, HOOK_PRIO_DEFAULT);
#endif
-#if defined(CONFIG_EXTPOWER) && defined(CONFIG_HIBERNATE) \
- && defined(CONFIG_VBOOT_EFS2)
-static void power_init_ap_idle(void)
-{
- if (extpower_is_present())
- return;
- /*
- * EC doesn't hibernate from G3 when AC is present. Thus if AC is not
- * present here, it implies we woke up by the power button or by the
- * lid. Clear AP_IDLE to avoid interfering with the boot.
- */
- CPRINTS("Clear AP_IDLE, assuming wake-up by PB or LID");
- system_clear_reset_flags(EC_RESET_FLAG_AP_IDLE);
-}
-DECLARE_HOOK(HOOK_INIT, power_init_ap_idle, HOOK_PRIO_INIT_EXTPOWER + 1);
-#endif
-
/*****************************************************************************/
/* Interrupts */