broadwell: Clear pending GPE events before entering sleep state

In the case of an EC wake event that is pending but not cleared
it is possible for the EC wake pin (i.e. GPIO27) to be asserted
after the kernel triggers the sleep SMI but before the system
goes to sleep.

If this happens then the GPE will be reported as a wake source
when the system wakes up again.

BUG=chrome-os-partner:33218
BRANCH=samus,auron
TEST=build and boot on samus, use the keyboard to enter suspend
with suspend_stress_test and ensure that only the RTC is listed
as a wake source upon resume.

Change-Id: Id900132bb81e4cf50885a652ed00a142d951ea4d
Signed-off-by: Stefan Reinauer <reinauer@chromium.org>
Original-Commit-Id: 50396ab6a3a3efb3b3dea4f1c2a8f8804fed943e
Original-Change-Id: I319dc22e21126a3086415f8f8b2b35eaec66fd50
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/225540
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/9231
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
diff --git a/src/soc/intel/broadwell/smihandler.c b/src/soc/intel/broadwell/smihandler.c
index 064a9dc..e1f7e5b 100644
--- a/src/soc/intel/broadwell/smihandler.c
+++ b/src/soc/intel/broadwell/smihandler.c
@@ -145,6 +145,9 @@
 		elog_add_event_byte(ELOG_TYPE_ACPI_ENTER, slp_typ-2);
 #endif
 
+	/* Clear pending GPE events */
+	clear_gpe_status();
+
 	/* Next, do the deed.
 	 */