From fe996b200c36e5ce6134250ef60e0e6b30b9183b Mon Sep 17 00:00:00 2001 From: Koro Chen Date: Mon, 7 Mar 2016 17:48:47 +0800 Subject: [PATCH] mkbp_event: prevent unnecessary interrupts to AP After commit 237406c5b12ed9934fc6eab7d24f30ba6e70fdce, there is chance that pd_power_supply_reset() will be called during S0->S3, and it interrupts AP and fails suspend if we are using MKBP_EVENT. This is because mkbp_send_event() does not check power state POWER_S0S3. Modify the condition to check events when AP is not in S0. BRANCH=none BUG=chrome-os-partner:50833 TEST=powerd_dbus_suspend always works without being resumed Change-Id: Id905a2cd4d2a0376bca163f40c68bcf4208d8bf5 Signed-off-by: Koro Chen Reviewed-on: https://chromium-review.googlesource.com/331160 Commit-Ready: Daniel Kurtz Tested-by: Milton Chiang Reviewed-by: Wei-Ning Huang Reviewed-by: Daniel Kurtz --- common/mkbp_event.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/mkbp_event.c b/common/mkbp_event.c index b039afa631..95bb4fd3f5 100644 --- a/common/mkbp_event.c +++ b/common/mkbp_event.c @@ -44,8 +44,8 @@ void mkbp_send_event(uint8_t event_type) set_event(event_type); #ifdef CONFIG_MKBP_WAKEUP_MASK - /* checking the event if AP suspended */ - if (chipset_in_state(CHIPSET_STATE_SUSPEND)) { + /* checking the event if AP is not in S0 */ + if (!chipset_in_state(CHIPSET_STATE_ON)) { uint32_t events; events = *(uint32_t *)host_get_memmap(EC_MEMMAP_HOST_EVENTS); /*