summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Gagniuc <mr.nuke.me@gmail.com>2014-04-14 14:38:19 -0500
committerAlexandru Gagniuc <mr.nuke.me@gmail.com>2014-04-17 04:42:10 +0200
commit22d90e34f95307d143249b53f3bb48f0a674ecbd (patch)
treec8a969cd92f9dce6c408fd3621412a1402618b4c
parent2dbd08faf4be1f2a156730f8857b4c6bb72909e3 (diff)
southbridge/hudson: Pass GEVENT SMIs to mainboard_smi_gpi()
Change-Id: Ifc368974a7a0dc0756431654fb89668e3846801a Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-on: http://review.coreboot.org/5502 Reviewed-by: Aaron Durbin <adurbin@gmail.com> Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
-rw-r--r--src/southbridge/amd/agesa/hudson/smihandler.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/southbridge/amd/agesa/hudson/smihandler.c b/src/southbridge/amd/agesa/hudson/smihandler.c
index 0bf0cdd1d3..923fd93bf0 100644
--- a/src/southbridge/amd/agesa/hudson/smihandler.c
+++ b/src/southbridge/amd/agesa/hudson/smihandler.c
@@ -37,6 +37,14 @@ static void process_smi_sci(void)
static void process_gpe_smi(void)
{
const uint32_t status = smi_read32(0x80);
+ const uint32_t gevent_mask = (1 << 24) - 1;
+
+ /* Only Bits [23:0] indicate GEVENT SMIs. */
+ if (status & gevent_mask) {
+ /* A GEVENT SMI occured */
+ if (mainboard_smi_gpi)
+ mainboard_smi_gpi(status & gevent_mask);
+ }
/* Clear events to prevent re-entering SMI if event isn't handled */
smi_write32(0x80, status);