[coreboot-gerrit] Patch set updated for coreboot: intel/apollolake: Add power management utility function
Shaunak Saha (shaunak.saha@intel.com)
gerrit at coreboot.org
Tue Aug 23 18:57:29 CEST 2016
Shaunak Saha (shaunak.saha at intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16298
-gerrit
commit 65fc72d94312cd7c19a15cc3fa42d95f822bb592
Author: Shaunak Saha <shaunak.saha at intel.com>
Date: Mon Aug 22 21:55:23 2016 -0700
intel/apollolake: Add power management utility function
This patch adds a power management utility function to
clear wake status bits in ACPI GPE0 registers. We need
to call this function before going to sleep from
common smi handler function.
BUG=chrome-os-partner:55583
BRANCH=None
TEST=Verified that system goes to sleep on lidclose and
powerd_dbus_suspend command issued from keyboard.
Change-Id: Icd095d377c82f2e154f2e2db773f737aa49cda64
Signed-off-by: Shaunak Saha <shaunak.saha at intel.com>
---
src/soc/intel/apollolake/include/soc/pm.h | 1 +
src/soc/intel/apollolake/pmutil.c | 11 +++++++++++
2 files changed, 12 insertions(+)
diff --git a/src/soc/intel/apollolake/include/soc/pm.h b/src/soc/intel/apollolake/include/soc/pm.h
index 5641e54..7eb5930 100644
--- a/src/soc/intel/apollolake/include/soc/pm.h
+++ b/src/soc/intel/apollolake/include/soc/pm.h
@@ -173,6 +173,7 @@ uint16_t clear_pm1_status(void);
uint32_t clear_tco_status(void);
uint32_t clear_gpe_status(void);
void clear_pmc_status(void);
+void clear_gpi_gpe_sts(void);
uint32_t get_smi_en(void);
void enable_smi(uint32_t mask);
void disable_smi(uint32_t mask);
diff --git a/src/soc/intel/apollolake/pmutil.c b/src/soc/intel/apollolake/pmutil.c
index aaa4018..e03cf28 100644
--- a/src/soc/intel/apollolake/pmutil.c
+++ b/src/soc/intel/apollolake/pmutil.c
@@ -246,6 +246,17 @@ void disable_all_gpe(void)
disable_gpe(~0);
}
+/* Clear the wake status bits in ACPI registers */
+void clear_gpi_gpe_sts(void)
+{
+ int i;
+
+ for (i = 1; i < GPE0_REG_MAX; i++) {
+ uint32_t gpe_sts = inl(ACPI_PMIO_BASE + GPE0_STS(i));
+ outl(gpe_sts, ACPI_PMIO_BASE + GPE0_STS(i));
+ }
+}
+
static uint32_t reset_gpe_status(void)
{
More information about the coreboot-gerrit
mailing list