diff options
Diffstat (limited to 'src/soc/intel/xeon_sp/acpi.c')
-rw-r--r-- | src/soc/intel/xeon_sp/acpi.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/soc/intel/xeon_sp/acpi.c b/src/soc/intel/xeon_sp/acpi.c index 1c493afc1c..f66f5e9e99 100644 --- a/src/soc/intel/xeon_sp/acpi.c +++ b/src/soc/intel/xeon_sp/acpi.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ +#include <acpi/acpigen.h> #include <assert.h> #include <intelblocks/acpi.h> #include <soc/chip_common.h> @@ -119,3 +120,22 @@ const char *soc_acpi_name(const struct device *dev) return NULL; } + +void acpigen_write_OSC_pci_domain_fixed_caps(const struct device *domain, + const uint32_t granted_pcie_features, + const bool is_cxl_domain, + const uint32_t granted_cxl_features) +{ + acpigen_write_method("_OSC", 4); + + acpigen_write_return_namestr("\\_SB.POSC"); + acpigen_emit_byte(ARG0_OP); + acpigen_emit_byte(ARG1_OP); + acpigen_emit_byte(ARG2_OP); + acpigen_emit_byte(ARG3_OP); + acpigen_write_integer(granted_pcie_features); + acpigen_write_integer(is_cxl_domain); + acpigen_write_integer(granted_cxl_features); + + acpigen_pop_len(); +} |