summaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/amd/common/block/graphics/Kconfig7
-rw-r--r--src/soc/amd/common/block/graphics/graphics.c15
2 files changed, 22 insertions, 0 deletions
diff --git a/src/soc/amd/common/block/graphics/Kconfig b/src/soc/amd/common/block/graphics/Kconfig
index 75b4013138..ce00f1821d 100644
--- a/src/soc/amd/common/block/graphics/Kconfig
+++ b/src/soc/amd/common/block/graphics/Kconfig
@@ -26,3 +26,10 @@ config USE_SELECTIVE_GOP_INIT
Select this option to only run the FSP GOP driver when needed for pre-OS display init
(eg, Recovery and Developer Modes). Otherwise, use cached VBIOS/ATOMBIOS tables.
Selecting this option will save approx. 130ms boot time on the normal boot path.
+
+config SOC_AMD_COMMON_BLOCK_GRAPHICS_ACP
+ bool
+ depends on SOC_AMD_COMMON_BLOCK_GRAPHICS
+ help
+ Select this option to provide Audio CoProcessor ACPI device for pre-Ryzen APUs for
+ use by custom Windows drivers.
diff --git a/src/soc/amd/common/block/graphics/graphics.c b/src/soc/amd/common/block/graphics/graphics.c
index 9dff18dd73..ea7308a850 100644
--- a/src/soc/amd/common/block/graphics/graphics.c
+++ b/src/soc/amd/common/block/graphics/graphics.c
@@ -114,6 +114,18 @@ static void generate_atif(const struct device *dev)
acpigen_pop_len(); /* Scope */
}
+static void generate_acp(const struct device *dev)
+{
+ /* Scope (\_SB.PCI0.IGFX) */
+ acpigen_write_scope(acpi_device_path(dev));
+ acpigen_write_device("ACP");
+
+ acpigen_write_name_string("_HID", "BOOT0003");
+
+ acpigen_pop_len(); /* Device */
+ acpigen_pop_len(); /* Scope */
+}
+
static void graphics_fill_ssdt(const struct device *dev)
{
acpi_device_write_pci_dev(dev);
@@ -124,6 +136,9 @@ static void graphics_fill_ssdt(const struct device *dev)
if (CONFIG(SOC_AMD_COMMON_BLOCK_GRAPHICS_ATIF))
generate_atif(dev);
+
+ if (CONFIG(SOC_AMD_COMMON_BLOCK_GRAPHICS_ACP))
+ generate_acp(dev);
}
static const char *graphics_acpi_name(const struct device *dev)