From 74f5a3e8a00edb82c9766fc9edb157c32959b20d Mon Sep 17 00:00:00 2001 From: Jeremy Compostella Date: Wed, 18 Oct 2023 14:42:13 -0700 Subject: [PATCH] soc/intel: Improve CONFIG_ACPI_SOC_INTEL_SLP_S0_FREQ_HZ use Commit bd9c562a9e0c6af65f5e798a17ba9a55892ef082 ("acpi: Configure slp-s0 residency counter frequency in LPIT table") led to jenkins reporting the following error: !!!!! Error: defined(CONFIG_ACPI_SOC_INTEL_SLP_S0_FREQ_HZ) used at src/include/acpi/acpi.h:457. Symbols of type 'hex' are always defined. Since hex Kconfig are always defined there is no need to test it being defined but also no need to handle zero or non-zero values. In addition: 1. This config was defined in Meteor Lake specific Kconfig file while it should actually be define closer to where it is being used (here soc/intel/common/block/acpi/Kconfig) and only set by the SoC Kconfig. 2. Once moved and under control of `SOC_INTEL_COMMON_BLOCK_ACPI_LPIT' gating (lpit.c), the Kconfig name needed to be adjusted to better fit its use. 3. Make Meteor Lake Kconfig sets the config but does not define it anymore. TEST=LPIT ACPI table Counter Frequency field is set to 0x2005 on rex Change-Id: I2083c9209e61be6180cca2c9f74097e2f4b4ce9a Signed-off-by: Jeremy Compostella Reviewed-on: https://review.coreboot.org/c/coreboot/+/78458 Reviewed-by: Paul Menzel Reviewed-by: Bora Guvendik Reviewed-by: Sukumar Ghorai Tested-by: build bot (Jenkins) Reviewed-by: Eric Lai Reviewed-by: Subrata Banik Reviewed-by: Kapil Porwal --- src/include/acpi/acpi.h | 5 ----- src/soc/intel/common/block/acpi/Kconfig | 10 ++++++++++ src/soc/intel/common/block/acpi/lpit.c | 3 ++- src/soc/intel/meteorlake/Kconfig | 3 +-- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/include/acpi/acpi.h b/src/include/acpi/acpi.h index 6998edd66e..acd5538709 100644 --- a/src/include/acpi/acpi.h +++ b/src/include/acpi/acpi.h @@ -454,11 +454,6 @@ typedef struct acpi_lpi_desc_hdr { } __packed acpi_lpi_desc_hdr_t; #define ACPI_LPIT_CTR_FREQ_TSC 0 -#if defined CONFIG_ACPI_SOC_INTEL_SLP_S0_FREQ_HZ && CONFIG_ACPI_SOC_INTEL_SLP_S0_FREQ_HZ != 0 -#define ACPI_LPIT_SLP_S0_FREQ CONFIG_ACPI_SOC_INTEL_SLP_S0_FREQ_HZ -#else -#define ACPI_LPIT_SLP_S0_FREQ 0 -#endif /* LPIT: Native C-state instruction based LPI structure */ diff --git a/src/soc/intel/common/block/acpi/Kconfig b/src/soc/intel/common/block/acpi/Kconfig index c750e7ebd7..cc7d38fc83 100644 --- a/src/soc/intel/common/block/acpi/Kconfig +++ b/src/soc/intel/common/block/acpi/Kconfig @@ -65,3 +65,13 @@ config SOC_INTEL_UFS_LTR_DISQUALIFY LTR needs to be disqualified for UFS in D3 to ensure PMC ignores LTR from UFS IP which is infinite. endif + +if SOC_INTEL_COMMON_BLOCK_ACPI_LPIT + +config SOC_INTEL_COMMON_BLOCK_ACPI_SLP_S0_FREQ_HZ + hex + help + Define the slp_s0_residency frequency to be reported in the + LPIT ACPI table. + +endif diff --git a/src/soc/intel/common/block/acpi/lpit.c b/src/soc/intel/common/block/acpi/lpit.c index de1e71dc24..37ffd7252f 100644 --- a/src/soc/intel/common/block/acpi/lpit.c +++ b/src/soc/intel/common/block/acpi/lpit.c @@ -56,7 +56,8 @@ unsigned long acpi_fill_lpit(unsigned long current) sys_counter->residency_counter.bit_width = 32; sys_counter->residency_counter.space_id = ACPI_ADDRESS_SPACE_MEMORY; sys_counter->residency_counter.access_size = ACPI_ACCESS_SIZE_DWORD_ACCESS; - sys_counter->counter_frequency = ACPI_LPIT_SLP_S0_FREQ; + sys_counter->counter_frequency = + CONFIG_SOC_INTEL_COMMON_BLOCK_ACPI_SLP_S0_FREQ_HZ; /* Min. residency and worst-case latency (from FSP and vendor dumps) */ sys_counter->min_residency = 30000; /* break-even: 30 ms */ diff --git a/src/soc/intel/meteorlake/Kconfig b/src/soc/intel/meteorlake/Kconfig index 968d1a1d6b..5ae6850884 100644 --- a/src/soc/intel/meteorlake/Kconfig +++ b/src/soc/intel/meteorlake/Kconfig @@ -447,8 +447,7 @@ config SOC_INTEL_CSE_FW_PARTITION_CMOS_OFFSET int default 161 -config ACPI_SOC_INTEL_SLP_S0_FREQ_HZ - hex +config SOC_INTEL_COMMON_BLOCK_ACPI_SLP_S0_FREQ_HZ default 0x2005 help slp_s0_residency granularity in 122us ticks (i.e. ~8.2KHz) in Meteor Lake.