soc/intel/xeon_sp: Move uncore_inject_dsdt() call

Prepare for common ACPI code. Move uncore_inject_dsdt() to the
uncore device acpi_inject_dsdt call.

Change-Id: Ida106238690eb1af17759ba6dbe4cb94344e3a94
Signed-off-by: Marc Jones <marcjones@sysproconsulting.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46596
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/src/soc/intel/xeon_sp/cpx/acpi.c b/src/soc/intel/xeon_sp/cpx/acpi.c
index 658c951..5a908da 100644
--- a/src/soc/intel/xeon_sp/cpx/acpi.c
+++ b/src/soc/intel/xeon_sp/cpx/acpi.c
@@ -214,9 +214,6 @@
 		acpigen_write_name_dword("NVSA", (uint32_t)gnvs);
 		acpigen_pop_len();
 	}
-
-	/* Add IIOStack ACPI Resource Templates */
-	uncore_inject_dsdt();
 }
 
 int calculate_power(int tdp, int p1_ratio, int ratio)
diff --git a/src/soc/intel/xeon_sp/cpx/soc_acpi.c b/src/soc/intel/xeon_sp/cpx/soc_acpi.c
index cf84334..19d196d 100644
--- a/src/soc/intel/xeon_sp/cpx/soc_acpi.c
+++ b/src/soc/intel/xeon_sp/cpx/soc_acpi.c
@@ -57,11 +57,7 @@
 				ACPI_FADT_S4_RTC_WAKE);
 }
 
-/*
- * Currently called in southbridge_inject_dsdt(). Change to soc_southbridge_inject_dsdt()
- * with a call from the common/function or find another way to call this at the correct place
- */
-void uncore_inject_dsdt(void)
+void uncore_inject_dsdt(const struct device *device)
 {
 	struct iiostack_resource stack_info = {0};
 
diff --git a/src/soc/intel/xeon_sp/include/soc/acpi.h b/src/soc/intel/xeon_sp/include/soc/acpi.h
index b46914d..75859e83 100644
--- a/src/soc/intel/xeon_sp/include/soc/acpi.h
+++ b/src/soc/intel/xeon_sp/include/soc/acpi.h
@@ -24,7 +24,7 @@
 
 void cpx_generate_p_state_entries(int core, int cores_per_package);
 int calculate_power(int tdp, int p1_ratio, int ratio);
-void uncore_inject_dsdt(void);
+void uncore_inject_dsdt(const struct device *device);
 unsigned long xeonsp_acpi_create_madt_lapics(unsigned long current);
 
 #endif /* _SOC_ACPI_H_ */
diff --git a/src/soc/intel/xeon_sp/skx/acpi.c b/src/soc/intel/xeon_sp/skx/acpi.c
index c446a51..f0b7df9 100644
--- a/src/soc/intel/xeon_sp/skx/acpi.c
+++ b/src/soc/intel/xeon_sp/skx/acpi.c
@@ -247,9 +247,6 @@
 		acpigen_write_name_dword("NVSA", (uint32_t)gnvs);
 		acpigen_pop_len();
 	}
-
-	// Add IIOStack ACPI Resource Templates
-	uncore_inject_dsdt();
 }
 
 
diff --git a/src/soc/intel/xeon_sp/skx/soc_acpi.c b/src/soc/intel/xeon_sp/skx/soc_acpi.c
index afbcf84..56ed0ce 100644
--- a/src/soc/intel/xeon_sp/skx/soc_acpi.c
+++ b/src/soc/intel/xeon_sp/skx/soc_acpi.c
@@ -55,11 +55,7 @@
 	return pci_read_config32(dev, PMC_ACPI_CNT);
 }
 
-/*
- * Currently called in southbridge_inject_dsdt(). Change to soc_southbridge_inject_dsdt()
- * with a call from the common/function or find another way to call this at the correct place
- */
-void uncore_inject_dsdt(void)
+void uncore_inject_dsdt(const struct device *device)
 {
 	size_t hob_size;
 	const uint8_t uds_guid[16] = FSP_HOB_IIO_UNIVERSAL_DATA_GUID;
diff --git a/src/soc/intel/xeon_sp/uncore.c b/src/soc/intel/xeon_sp/uncore.c
index a549acb..332b9a4 100644
--- a/src/soc/intel/xeon_sp/uncore.c
+++ b/src/soc/intel/xeon_sp/uncore.c
@@ -5,6 +5,7 @@
 #include <cpu/x86/lapic_def.h>
 #include <device/pci.h>
 #include <device/pci_ids.h>
+#include <soc/acpi.h>
 #include <soc/iomap.h>
 #include <soc/pci_devs.h>
 #include <soc/ramstage.h>
@@ -274,6 +275,9 @@
 	.enable_resources  = pci_dev_enable_resources,
 	.init              = mmapvtd_init,
 	.ops_pci           = &soc_pci_ops,
+#if CONFIG(HAVE_ACPI_TABLES)
+	.acpi_inject_dsdt  = uncore_inject_dsdt,
+#endif
 };
 
 static const unsigned short mmapvtd_ids[] = {