summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/amd/picasso/acpi.c2
-rw-r--r--src/soc/amd/picasso/finalize.c9
-rw-r--r--src/soc/amd/stoneyridge/acpi.c2
-rw-r--r--src/soc/amd/stoneyridge/finalize.c9
4 files changed, 18 insertions, 4 deletions
diff --git a/src/soc/amd/picasso/acpi.c b/src/soc/amd/picasso/acpi.c
index 8597c4e15d..7b70ec6be4 100644
--- a/src/soc/amd/picasso/acpi.c
+++ b/src/soc/amd/picasso/acpi.c
@@ -98,7 +98,6 @@ void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
fadt->s4bios_req = 0; /* Not supported */
fadt->pstate_cnt = 0; /* Not supported */
fadt->cst_cnt = 0; /* Not supported */
- acpi_disable_sci();
} else {
fadt->smi_cmd = 0; /* disable system management mode */
fadt->acpi_enable = 0; /* unused if SMI_CMD = 0 */
@@ -106,7 +105,6 @@ void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
fadt->s4bios_req = 0; /* unused if SMI_CMD = 0 */
fadt->pstate_cnt = 0; /* unused if SMI_CMD = 0 */
fadt->cst_cnt = 0x00; /* unused if SMI_CMD = 0 */
- acpi_enable_sci();
}
fadt->pm1a_evt_blk = ACPI_PM_EVT_BLK;
diff --git a/src/soc/amd/picasso/finalize.c b/src/soc/amd/picasso/finalize.c
index 0ec7bd9218..5ea52c6eaf 100644
--- a/src/soc/amd/picasso/finalize.c
+++ b/src/soc/amd/picasso/finalize.c
@@ -13,12 +13,14 @@
* GNU General Public License for more details.
*/
+#include <arch/acpi.h>
#include <cpu/x86/mp.h>
#include <cpu/x86/msr.h>
#include <cpu/amd/msr.h>
#include <bootstate.h>
#include <timer.h>
#include <console/console.h>
+#include <amdblocks/acpi.h>
static void per_core_finalize(void *unused)
{
@@ -53,6 +55,13 @@ static void soc_finalize(void *unused)
{
finalize_cores();
+ if (!acpi_is_wakeup_s3()) {
+ if (CONFIG(HAVE_SMI_HANDLER))
+ acpi_disable_sci();
+ else
+ acpi_enable_sci();
+ }
+
post_code(POST_OS_BOOT);
}
diff --git a/src/soc/amd/stoneyridge/acpi.c b/src/soc/amd/stoneyridge/acpi.c
index d1ea24ffd5..13020ed1da 100644
--- a/src/soc/amd/stoneyridge/acpi.c
+++ b/src/soc/amd/stoneyridge/acpi.c
@@ -100,7 +100,6 @@ void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
fadt->s4bios_req = 0; /* Not supported */
fadt->pstate_cnt = 0; /* Not supported */
fadt->cst_cnt = 0; /* Not supported */
- acpi_disable_sci();
} else {
fadt->smi_cmd = 0; /* disable system management mode */
fadt->acpi_enable = 0; /* unused if SMI_CMD = 0 */
@@ -108,7 +107,6 @@ void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
fadt->s4bios_req = 0; /* unused if SMI_CMD = 0 */
fadt->pstate_cnt = 0; /* unused if SMI_CMD = 0 */
fadt->cst_cnt = 0x00; /* unused if SMI_CMD = 0 */
- acpi_enable_sci();
}
fadt->pm1a_evt_blk = ACPI_PM_EVT_BLK;
diff --git a/src/soc/amd/stoneyridge/finalize.c b/src/soc/amd/stoneyridge/finalize.c
index 0ec7bd9218..5ea52c6eaf 100644
--- a/src/soc/amd/stoneyridge/finalize.c
+++ b/src/soc/amd/stoneyridge/finalize.c
@@ -13,12 +13,14 @@
* GNU General Public License for more details.
*/
+#include <arch/acpi.h>
#include <cpu/x86/mp.h>
#include <cpu/x86/msr.h>
#include <cpu/amd/msr.h>
#include <bootstate.h>
#include <timer.h>
#include <console/console.h>
+#include <amdblocks/acpi.h>
static void per_core_finalize(void *unused)
{
@@ -53,6 +55,13 @@ static void soc_finalize(void *unused)
{
finalize_cores();
+ if (!acpi_is_wakeup_s3()) {
+ if (CONFIG(HAVE_SMI_HANDLER))
+ acpi_disable_sci();
+ else
+ acpi_enable_sci();
+ }
+
post_code(POST_OS_BOOT);
}