summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2016-09-19 12:04:19 -0700
committerPatrick Georgi <pgeorgi@google.com>2016-09-21 10:46:00 +0200
commit1f6e6813554606bb23481fe64401809ab43bdcc7 (patch)
treebe7c0f835040a9c5360d74869c82597506cc8381
parentf235a9b1b06a6374d473c9f610eb945cf4633c74 (diff)
downloadcoreboot-1f6e6813554606bb23481fe64401809ab43bdcc7.tar.xz
x86: acpi: Add function for querying GPE status
Add a function that can be implemented by the SOC to read and clear the status of a single GPE. This can be used during firmware to poll for interrupt status. BUG=chrome-os-partner:53336 Change-Id: I551276f36ff0d2eb5b5ea13f019cdf4a3c749a09 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://review.coreboot.org/16669 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/arch/x86/acpi.c5
-rw-r--r--src/arch/x86/include/arch/acpi.h3
2 files changed, 8 insertions, 0 deletions
diff --git a/src/arch/x86/acpi.c b/src/arch/x86/acpi.c
index bbeb92f3ba..edb6835dc8 100644
--- a/src/arch/x86/acpi.c
+++ b/src/arch/x86/acpi.c
@@ -1093,3 +1093,8 @@ void acpi_save_gnvs(u32 gnvs_address)
if (gnvs)
*gnvs = gnvs_address;
}
+
+__attribute__ ((weak)) int acpi_get_gpe(int gpe)
+{
+ return -1; /* implemented by SOC */
+}
diff --git a/src/arch/x86/include/arch/acpi.h b/src/arch/x86/include/arch/acpi.h
index e81ddbf02f..7d2993162d 100644
--- a/src/arch/x86/include/arch/acpi.h
+++ b/src/arch/x86/include/arch/acpi.h
@@ -677,6 +677,9 @@ static inline int acpi_sleep_from_pm1(uint32_t pm1_cnt)
/* Returns ACPI_Sx values. */
int acpi_get_sleep_type(void);
+/* Read and clear GPE status */
+int acpi_get_gpe(int gpe);
+
static inline int acpi_s3_resume_allowed(void)
{
return IS_ENABLED(CONFIG_HAVE_ACPI_RESUME);