From e48fb54b161f306966a9d878ab6d103554b2264a Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Tue, 17 Oct 2017 16:00:10 -0700 Subject: soc/intel/common/block/pmc: Add new function pmc_fill_pm_reg_info This change creates a new function pmc_fill_pm_reg_info that fills chipset_power_state structure with all the PM register information. On the other hand, already existing pmc_fill_power_state calls into pmc_fill_pm_reg_info and then checks and returns previous sleep state information. This allows caller to get all the PM register information when previous sleep state is not relevant. BUG=b:67874513 Change-Id: Idc91e4aef5379549355aceb685f7afafa6a220c5 Signed-off-by: Furquan Shaikh Reviewed-on: https://review.coreboot.org/22080 Reviewed-by: Aaron Durbin Tested-by: build bot (Jenkins) --- src/soc/intel/common/block/pmc/pmclib.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/soc/intel/common/block/pmc') diff --git a/src/soc/intel/common/block/pmc/pmclib.c b/src/soc/intel/common/block/pmc/pmclib.c index 7bddb4700c..c2a6bef86e 100644 --- a/src/soc/intel/common/block/pmc/pmclib.c +++ b/src/soc/intel/common/block/pmc/pmclib.c @@ -386,11 +386,12 @@ void pmc_fixup_power_state(void) } } -/* Reads and prints ACPI specific PM registers */ -int pmc_fill_power_state(struct chipset_power_state *ps) +void pmc_fill_pm_reg_info(struct chipset_power_state *ps) { int i; + memset(ps, 0, sizeof(*ps)); + ps->pm1_sts = inw(ACPI_BASE_ADDRESS + PM1_STS); ps->pm1_en = inw(ACPI_BASE_ADDRESS + PM1_EN); ps->pm1_cnt = inl(ACPI_BASE_ADDRESS + PM1_CNT); @@ -406,6 +407,12 @@ int pmc_fill_power_state(struct chipset_power_state *ps) } soc_fill_power_state(ps); +} + +/* Reads and prints ACPI specific PM registers */ +int pmc_fill_power_state(struct chipset_power_state *ps) +{ + pmc_fill_pm_reg_info(ps); ps->prev_sleep_state = pmc_prev_sleep_state(ps); printk(BIOS_DEBUG, "prev_sleep_state %d\n", ps->prev_sleep_state); -- cgit v1.2.3