diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2020-07-31 17:20:38 +0000 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-08-01 00:12:19 +0000 |
commit | 744a611d80219aa430501e2a1923e2d06af7fe0a (patch) | |
tree | d129f1a8027faee950f2b7036cd11d77ead26771 /power | |
parent | eaffee8a2567be9be30a2290456dc3d4c0f39147 (diff) | |
download | chrome-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.c | 25 |
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 */ |