summaryrefslogtreecommitdiff
path: root/src/southbridge/intel
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@no-log.org>2013-05-26 18:24:41 +0200
committerStefan Reinauer <stefan.reinauer@coreboot.org>2013-07-10 00:53:17 +0200
commit1b32a51e515ce25495f87a82d1575d26acd93228 (patch)
tree6344620d523ff38afb8d4f5867526458085fa7c8 /src/southbridge/intel
parentb694f10c006168c8497d87d8f33da74724126d01 (diff)
i82801gx: smihandle: sync with southbridge/intel/bd82x6x/smihandler.c
Change-Id: Ic725b169061bd426aa8206dc1d6d31e67cc639f2 Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> Reviewed-on: http://review.coreboot.org/3304 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/southbridge/intel')
-rw-r--r--src/southbridge/intel/i82801gx/smihandler.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/southbridge/intel/i82801gx/smihandler.c b/src/southbridge/intel/i82801gx/smihandler.c
index 237ac085fb..a33e9a72af 100644
--- a/src/southbridge/intel/i82801gx/smihandler.c
+++ b/src/southbridge/intel/i82801gx/smihandler.c
@@ -20,6 +20,7 @@
*/
#include <types.h>
+#include <arch/hlt.h>
#include <arch/io.h>
#include <console/console.h>
#include <cpu/x86/cache.h>
@@ -345,6 +346,9 @@ static void southbridge_smi_sleep(unsigned int node, smm_state_save_area_t *stat
*/
outl(reg32 | SLP_EN, pmbase + PM1_CNT);
+ /* Make sure to stop executing code here for S3/S4/S5 */
+ if (slp_typ > 1)
+ hlt();
/* In most sleep states, the code flow of this function ends at
* the line above. However, if we entered sleep state S1 and wake
* up again, we will continue to execute code in this function.