summaryrefslogtreecommitdiff
path: root/power
diff options
context:
space:
mode:
authorRavi Chandra Sadineni <ravisadineni@chromium.org>2019-07-24 17:19:22 -0700
committerCommit Bot <commit-bot@chromium.org>2019-08-21 05:45:00 +0000
commit74f268374972bdc8bd6c2a5c412d31edafa812b1 (patch)
tree088ed9b33e3e538e872b2b8721ebe9357592a90d /power
parentac780ae08f9cc880b8606937e03e4d8193e1022a (diff)
downloadchrome-ec-74f268374972bdc8bd6c2a5c412d31edafa812b1.tar.gz
EC: Do not drop SCI events responsible for wake.
EC currently clears all events(main copy of hostevents) on every resume. This seems to be added to clear events that are only part of wake mask and not part of SCI mask as they can stick and cause premature wake on next suspend. This patch stops clearing events that are part of SCI mask from the main copy as ACPI subsystem will query and clear them on resume anyway. This helps kernel to identify the reason for wake if it caused by events that are part of SCI mask. Previously coreboot used to depend on main copy to log wake reason. i.e on every resume coreboot used to query and log and clear the wake reason by reading all events from the main copy. Since this also comes in way of kernel in identifying the wake reason, this change also sets up events_copy_b for coreboot by clearing it on every suspend entery. More details can be found at http://go/hostevent-refactor. BUG=b:133262012, b:65976859 BRANCH=None TEST=Tested suspend/resume with wakeup count on hatch and grunt. Change-Id: I0fac250d4dac49af960b29e8b0e28841af2ef509 Signed-off-by: Ravi Chandra Sadineni <ravisadineni@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1717498 Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Diffstat (limited to 'power')
-rw-r--r--power/intel_x86.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/power/intel_x86.c b/power/intel_x86.c
index df1b4ee6f7..1574041ae4 100644
--- a/power/intel_x86.c
+++ b/power/intel_x86.c
@@ -671,9 +671,6 @@ power_chipset_handle_host_sleep_event(enum host_sleep_event state,
*/
s0ix_notify = S0IX_NOTIFY_RESUME;
task_wake(TASK_ID_CHIPSET);
- /* clear host events */
- while (lpc_get_next_host_event() != 0)
- ;
lpc_s0ix_resume_restore_masks();
power_signal_disable_interrupt(sleep_sig[SYS_SLEEP_S0IX]);
s0ix_complete_resume(ctx);