diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2021-01-22 20:02:39 +0200 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2021-01-28 08:48:07 +0000 |
commit | 952e6b1ef8601edda9eee5e2a539aa349fd9efc2 (patch) | |
tree | 85999e6054fbed99d19d36614ee21a48ca000123 /src/soc/intel/common/acpi_wake_source.c | |
parent | f67e67510b4d165e66e28c5ec60cec356a6497c2 (diff) |
soc/intel: Refactor acpi_wake_source()
Change-Id: I44cb499260fdd0ea37308909a24cdf5ca1afa025
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/49879
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel/common/acpi_wake_source.c')
-rw-r--r-- | src/soc/intel/common/acpi_wake_source.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/src/soc/intel/common/acpi_wake_source.c b/src/soc/intel/common/acpi_wake_source.c index 976e005b05..5e67e2adca 100644 --- a/src/soc/intel/common/acpi_wake_source.c +++ b/src/soc/intel/common/acpi_wake_source.c @@ -17,23 +17,12 @@ __weak int soc_fill_acpi_wake(const struct chipset_power_state *ps, uint32_t *pm } /* Save wake source data for ACPI _SWS methods in NVS */ -static void acpi_save_wake_source(void *unused) +static void pm_fill_gnvs(struct global_nvs *gnvs, const struct chipset_power_state *ps) { - struct global_nvs *gnvs = acpi_get_gnvs(); uint32_t pm1, *gpe0; int gpe_reg, gpe_reg_count; int reg_size = sizeof(uint32_t) * 8; - if (!gnvs) - return; - - gnvs->pm1i = -1; - gnvs->gpei = -1; - - const struct chipset_power_state *ps = acpi_get_pm_state(); - if (!ps) - return; - gpe_reg_count = soc_fill_acpi_wake(ps, &pm1, &gpe0); if (gpe_reg_count < 0) return; @@ -76,4 +65,20 @@ static void acpi_save_wake_source(void *unused) (long long)gnvs->pm1i, (long long)gnvs->gpei); } +static void acpi_save_wake_source(void *unused) +{ + const struct chipset_power_state *ps; + struct global_nvs *gnvs = acpi_get_gnvs(); + if (!gnvs) + return; + + gnvs->pm1i = -1; + gnvs->gpei = -1; + + if (acpi_pm_state_for_wake(&ps) < 0) + return; + + pm_fill_gnvs(gnvs, ps); +} + BOOT_STATE_INIT_ENTRY(BS_OS_RESUME, BS_ON_ENTRY, acpi_save_wake_source, NULL); |