From 4a3f67a9f22f52c2f495cf3708ffb2a92bd9fa70 Mon Sep 17 00:00:00 2001 From: Kyösti Mälkki Date: Thu, 18 Jun 2020 13:44:29 +0300 Subject: ACPI S3: Split arch-agnostic parts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I9fc2d1cdbb280f781045882bc4ac98c67946953e Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/42614 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- src/acpi/Makefile.inc | 3 +++ src/acpi/acpi_pm.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/acpi/acpi_pm.c (limited to 'src/acpi') diff --git a/src/acpi/Makefile.inc b/src/acpi/Makefile.inc index f70b23ff5b..2f06be1a2c 100644 --- a/src/acpi/Makefile.inc +++ b/src/acpi/Makefile.inc @@ -3,6 +3,7 @@ ifeq ($(CONFIG_HAVE_ACPI_TABLES),y) ramstage-y += acpi.c +ramstage-y += acpi_pm.c ramstage-y += acpigen.c ramstage-y += acpigen_dptf.c ramstage-y += acpigen_dsm.c @@ -15,6 +16,8 @@ ramstage-y += pld.c ramstage-y += sata.c ramstage-y += soundwire.c +postcar-y += acpi_pm.c + ifneq ($(wildcard src/mainboard/$(MAINBOARDDIR)/acpi_tables.c),) ramstage-srcs += src/mainboard/$(MAINBOARDDIR)/acpi_tables.c endif diff --git a/src/acpi/acpi_pm.c b/src/acpi/acpi_pm.c new file mode 100644 index 0000000000..cecf878910 --- /dev/null +++ b/src/acpi/acpi_pm.c @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include + +/* This is filled with acpi_handoff_wakeup_s3() call early in ramstage. */ +static int acpi_slp_type = -1; + +static void acpi_handoff_wakeup(void) +{ + if (acpi_slp_type < 0) { + if (romstage_handoff_is_resume()) { + printk(BIOS_DEBUG, "S3 Resume\n"); + acpi_slp_type = ACPI_S3; + } else { + printk(BIOS_DEBUG, "Normal boot\n"); + acpi_slp_type = ACPI_S0; + } + } +} + +int acpi_handoff_wakeup_s3(void) +{ + acpi_handoff_wakeup(); + return (acpi_slp_type == ACPI_S3); +} + +void __weak mainboard_suspend_resume(void) +{ +} -- cgit v1.2.3