soc/amd/picasso: move acpigen_dptc_call_alib to new common alib
Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: Ib0f7da12429b6278d1e4bc5d6650c7ee0f3b5209 Reviewed-on: https://review.coreboot.org/c/coreboot/+/53940 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
parent
dcec409e95
commit
18b51e93ac
|
@ -5,5 +5,8 @@ config SOC_AMD_COMMON_BLOCK_ACPI
|
||||||
help
|
help
|
||||||
Select this option to use the AcpiMmio ACPI registers.
|
Select this option to use the AcpiMmio ACPI registers.
|
||||||
|
|
||||||
|
config SOC_AMD_COMMON_BLOCK_ACPI_ALIB
|
||||||
|
bool
|
||||||
|
|
||||||
config SOC_AMD_COMMON_BLOCK_ACPI_GPIO
|
config SOC_AMD_COMMON_BLOCK_ACPI_GPIO
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -9,6 +9,7 @@ smm-y += acpi.c
|
||||||
|
|
||||||
ramstage-y += pm_state.c
|
ramstage-y += pm_state.c
|
||||||
ramstage-y += tables.c
|
ramstage-y += tables.c
|
||||||
|
ramstage-$(CONFIG_SOC_AMD_COMMON_BLOCK_ACPI_ALIB) += alib.c
|
||||||
ramstage-$(CONFIG_SOC_AMD_COMMON_BLOCK_ACPI_GPIO) += gpio.c
|
ramstage-$(CONFIG_SOC_AMD_COMMON_BLOCK_ACPI_GPIO) += gpio.c
|
||||||
|
|
||||||
endif # CONFIG_SOC_AMD_COMMON_BLOCK_ACPI
|
endif # CONFIG_SOC_AMD_COMMON_BLOCK_ACPI
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
|
||||||
|
#include <acpi/acpigen.h>
|
||||||
|
#include <amdblocks/alib.h>
|
||||||
|
#include <types.h>
|
||||||
|
|
||||||
|
void acpigen_dptc_call_alib(const char *buf_name, uint8_t *buffer, size_t size)
|
||||||
|
{
|
||||||
|
/* Name (buf_name, Buffer(size) {...} */
|
||||||
|
acpigen_write_name(buf_name);
|
||||||
|
acpigen_write_byte_buffer(buffer, size);
|
||||||
|
|
||||||
|
/* \_SB.ALIB(0xc, buf_name) */
|
||||||
|
acpigen_emit_namestring("\\_SB.ALIB");
|
||||||
|
acpigen_write_integer(ALIB_FUNCTION_DYNAMIC_POWER_THERMAL_CONFIG);
|
||||||
|
acpigen_emit_namestring(buf_name);
|
||||||
|
}
|
|
@ -21,6 +21,8 @@ struct alib_dptc_param {
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
|
void acpigen_dptc_call_alib(const char *buf_name, uint8_t *buffer, size_t size);
|
||||||
|
|
||||||
#endif /* !__ACPI__ */
|
#endif /* !__ACPI__ */
|
||||||
|
|
||||||
#endif /* AMD_COMMON_ALIB_H */
|
#endif /* AMD_COMMON_ALIB_H */
|
||||||
|
|
|
@ -28,6 +28,7 @@ config CPU_SPECIFIC_OPTIONS
|
||||||
select SOC_AMD_COMMON_BLOCK_ACP
|
select SOC_AMD_COMMON_BLOCK_ACP
|
||||||
select SOC_AMD_COMMON_BLOCK_ACPI
|
select SOC_AMD_COMMON_BLOCK_ACPI
|
||||||
select SOC_AMD_COMMON_BLOCK_ACPIMMIO
|
select SOC_AMD_COMMON_BLOCK_ACPIMMIO
|
||||||
|
select SOC_AMD_COMMON_BLOCK_ACPI_ALIB
|
||||||
select SOC_AMD_COMMON_BLOCK_ACPI_GPIO
|
select SOC_AMD_COMMON_BLOCK_ACPI_GPIO
|
||||||
select SOC_AMD_COMMON_BLOCK_AOAC
|
select SOC_AMD_COMMON_BLOCK_AOAC
|
||||||
select SOC_AMD_COMMON_BLOCK_APOB
|
select SOC_AMD_COMMON_BLOCK_APOB
|
||||||
|
|
|
@ -177,18 +177,6 @@ static void root_complex_init(struct device *dev)
|
||||||
setup_ioapic((u8 *)GNB_IO_APIC_ADDR, GNB_IOAPIC_ID);
|
setup_ioapic((u8 *)GNB_IO_APIC_ADDR, GNB_IOAPIC_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dptc_call_alib(const char *buf_name, uint8_t *buffer, size_t size)
|
|
||||||
{
|
|
||||||
/* Name (buf_name, Buffer(size) {...} */
|
|
||||||
acpigen_write_name(buf_name);
|
|
||||||
acpigen_write_byte_buffer(buffer, size);
|
|
||||||
|
|
||||||
/* \_SB.ALIB(0xc, buf_name) */
|
|
||||||
acpigen_emit_namestring("\\_SB.ALIB");
|
|
||||||
acpigen_write_integer(ALIB_FUNCTION_DYNAMIC_POWER_THERMAL_CONFIG);
|
|
||||||
acpigen_emit_namestring(buf_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void acipgen_dptci(void)
|
static void acipgen_dptci(void)
|
||||||
{
|
{
|
||||||
const struct soc_amd_picasso_config *config = config_of_soc();
|
const struct soc_amd_picasso_config *config = config_of_soc();
|
||||||
|
@ -214,13 +202,14 @@ static void acipgen_dptci(void)
|
||||||
/* If (LEqual ("\_SB.PCI0.LPCB.EC0.TBMD", 1)) */
|
/* If (LEqual ("\_SB.PCI0.LPCB.EC0.TBMD", 1)) */
|
||||||
acpigen_write_if_lequal_namestr_int("\\_SB.PCI0.LPCB.EC0.TBMD", 1);
|
acpigen_write_if_lequal_namestr_int("\\_SB.PCI0.LPCB.EC0.TBMD", 1);
|
||||||
|
|
||||||
dptc_call_alib("TABB", (uint8_t *)(void *)&tablet_mode_input,
|
acpigen_dptc_call_alib("TABB", (uint8_t *)(void *)&tablet_mode_input,
|
||||||
sizeof(tablet_mode_input));
|
sizeof(tablet_mode_input));
|
||||||
|
|
||||||
/* Else */
|
/* Else */
|
||||||
acpigen_write_else();
|
acpigen_write_else();
|
||||||
|
|
||||||
dptc_call_alib("DEFB", (uint8_t *)(void *)&default_input, sizeof(default_input));
|
acpigen_dptc_call_alib("DEFB", (uint8_t *)(void *)&default_input,
|
||||||
|
sizeof(default_input));
|
||||||
|
|
||||||
acpigen_pop_len(); /* Else */
|
acpigen_pop_len(); /* Else */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue