summaryrefslogtreecommitdiff
path: root/common/mkbp_event.c
diff options
context:
space:
mode:
authorNicolas Boichat <drinkcat@chromium.org>2018-11-02 14:12:37 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-11-07 11:40:56 -0800
commit92e90175cd4c314099099957c296d26fea548e32 (patch)
tree086c5cfef365119f898d7e040726447b2ad550d8 /common/mkbp_event.c
parentfada7a654ed7f6e548830daa781e3557231d494e (diff)
downloadchrome-ec-92e90175cd4c314099099957c296d26fea548e32.tar.gz
mkbp_event: deassert host irq when if the current event cannot be fetched
On boot, it is possible to encounter a case where a host event bit is set, but the FIFO is actually empty (e.g. if an event was sent when the AP is sleeping). In this case, we should still deassert interrupt to AP, if there are no other events pending. BRANCH=none BUG=b:117406392 TEST=Boot kukui, no "HC 0x67 err 9" Change-Id: I5c23b3a37c16fce673478f863b6b7660aba59ee9 Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1314308 Reviewed-by: Enrico Granata <egranata@chromium.org>
Diffstat (limited to 'common/mkbp_event.c')
-rw-r--r--common/mkbp_event.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/common/mkbp_event.c b/common/mkbp_event.c
index 9d643d6f46..44cec336b5 100644
--- a/common/mkbp_event.c
+++ b/common/mkbp_event.c
@@ -162,13 +162,13 @@ static int mkbp_get_next_event(struct host_cmd_handler_args *args)
set_event(evt);
} while (data_size == -EC_ERROR_BUSY);
+ if (!events)
+ set_host_interrupt(0);
+
if (data_size < 0)
return EC_RES_ERROR;
args->response_size = 1 + data_size;
- if (!events)
- set_host_interrupt(0);
-
return EC_RES_SUCCESS;
}
DECLARE_HOST_COMMAND(EC_CMD_GET_NEXT_EVENT,