Make acpi_fill_dmar into parameter

Change-Id: I5e237cb7acbf47b2c8a4cd725ee8e16e422e3b17
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/7371
Tested-by: build bot (Jenkins)
Reviewed-by: Nicolas Reinecke <nr@das-labor.org>
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
diff --git a/src/arch/x86/boot/acpi.c b/src/arch/x86/boot/acpi.c
index 4c63fc3..cbe9095 100644
--- a/src/arch/x86/boot/acpi.c
+++ b/src/arch/x86/boot/acpi.c
@@ -349,12 +349,8 @@
 	header->checksum = acpi_checksum((void *)srat, header->length);
 }
 
-unsigned long __attribute__((weak)) acpi_fill_dmar(unsigned long current)
-{
-	return current;
-}
-
-void acpi_create_dmar(acpi_dmar_t *dmar)
+void acpi_create_dmar(acpi_dmar_t *dmar,
+		      unsigned long (*acpi_fill_dmar) (unsigned long))
 {
 	acpi_header_t *header = &(dmar->header);
 	unsigned long current = (unsigned long)dmar + sizeof(acpi_dmar_t);
diff --git a/src/arch/x86/include/arch/acpi.h b/src/arch/x86/include/arch/acpi.h
index 313bdf1..9934d0b9 100644
--- a/src/arch/x86/include/arch/acpi.h
+++ b/src/arch/x86/include/arch/acpi.h
@@ -535,15 +535,14 @@
 
 void acpi_create_facs(acpi_facs_t *facs);
 
-void acpi_create_dmar(acpi_dmar_t *dmar);
+void acpi_create_dmar(acpi_dmar_t *dmar,
+		      unsigned long (*acpi_fill_dmar) (unsigned long));
 unsigned long acpi_create_dmar_drhd(unsigned long current, u8 flags,
 				    u16 segment, u32 bar);
 void acpi_dmar_drhd_fixup(unsigned long base, unsigned long current);
 unsigned long acpi_create_dmar_drhd_ds_pci(unsigned long current, u8 segment,
 					   u8 dev, u8 fn);
 
-unsigned long acpi_fill_dmar(unsigned long);
-
 #if CONFIG_HAVE_ACPI_SLIC
 unsigned long acpi_create_slic(unsigned long current);
 #endif
diff --git a/src/northbridge/intel/gm45/acpi.c b/src/northbridge/intel/gm45/acpi.c
index 445995a..58498ed 100644
--- a/src/northbridge/intel/gm45/acpi.c
+++ b/src/northbridge/intel/gm45/acpi.c
@@ -75,7 +75,7 @@
 	return current;
 }
 
-unsigned long acpi_fill_dmar(unsigned long current)
+static unsigned long acpi_fill_dmar(unsigned long current)
 {
 	int me_active = (dev_find_slot(0, PCI_DEVFN(3, 0)) != NULL);
 	int stepping = pci_read_config8(dev_find_slot(0, PCI_DEVFN(0, 0)), PCI_CLASS_REVISION);
@@ -122,7 +122,7 @@
 #if CONFIG_IOMMU
 	printk(BIOS_DEBUG, "ACPI:     * DMAR\n");
 	dmar = (acpi_dmar_t *) current;
-	acpi_create_dmar(dmar);
+	acpi_create_dmar(dmar, acpi_fill_dmar);
 	current += dmar->header.length;
 	ALIGN_CURRENT;
 	acpi_add_table(rsdp, dmar);