From a472e33634b7c9709fccb3c60d1d21b2c75e1347 Mon Sep 17 00:00:00 2001
From: Angel Pons <th3fanbus@gmail.com>
Date: Mon, 26 Oct 2020 00:08:47 +0100
Subject: broadwell: Factor out `acpi_fill_madt` function
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It is identical for all Broadwell mainboards, thus deduplicate it.

Change-Id: I74559fbe42e44aa4d15ced5d88f6c15a1bf5203b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46792
Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
---
 src/mainboard/google/auron/acpi_tables.c      | 13 -------------
 src/mainboard/google/jecht/acpi_tables.c      | 13 -------------
 src/mainboard/intel/wtm2/acpi_tables.c        | 13 -------------
 src/mainboard/purism/librem_bdw/acpi_tables.c | 13 -------------
 src/soc/intel/broadwell/acpi.c                |  9 ++++++++-
 src/soc/intel/broadwell/include/soc/acpi.h    |  1 -
 6 files changed, 8 insertions(+), 54 deletions(-)

(limited to 'src')

diff --git a/src/mainboard/google/auron/acpi_tables.c b/src/mainboard/google/auron/acpi_tables.c
index 10dc637f01..970ec9d5cf 100644
--- a/src/mainboard/google/auron/acpi_tables.c
+++ b/src/mainboard/google/auron/acpi_tables.c
@@ -1,6 +1,5 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
-#include <arch/ioapic.h>
 #include <acpi/acpi.h>
 #include <acpi/acpi_gnvs.h>
 #include <soc/acpi.h>
@@ -24,18 +23,6 @@ void acpi_create_gnvs(struct global_nvs *gnvs)
 	gnvs->flvl = 1;
 }
 
-unsigned long acpi_fill_madt(unsigned long current)
-{
-	/* Local APICs */
-	current = acpi_create_madt_lapics(current);
-
-	/* IOAPIC */
-	current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *) current,
-				2, IO_APIC_ADDR, 0);
-
-	return acpi_madt_irq_overrides(current);
-}
-
 void mainboard_fill_fadt(acpi_fadt_t *fadt)
 {
 	fadt->preferred_pm_profile = PM_MOBILE;
diff --git a/src/mainboard/google/jecht/acpi_tables.c b/src/mainboard/google/jecht/acpi_tables.c
index f824cd8f72..580c0b6532 100644
--- a/src/mainboard/google/jecht/acpi_tables.c
+++ b/src/mainboard/google/jecht/acpi_tables.c
@@ -2,7 +2,6 @@
 
 #include <acpi/acpi.h>
 #include <acpi/acpi_gnvs.h>
-#include <arch/ioapic.h>
 #include <device/device.h>
 #include <soc/acpi.h>
 #include <soc/nvs.h>
@@ -25,18 +24,6 @@ void acpi_create_gnvs(struct global_nvs *gnvs)
 	gnvs->flvl = 1;
 }
 
-unsigned long acpi_fill_madt(unsigned long current)
-{
-	/* Local APICs */
-	current = acpi_create_madt_lapics(current);
-
-	/* IOAPIC */
-	current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *) current,
-				2, IO_APIC_ADDR, 0);
-
-	return acpi_madt_irq_overrides(current);
-}
-
 void mainboard_fill_fadt(acpi_fadt_t *fadt)
 {
 	fadt->preferred_pm_profile = PM_MOBILE;
diff --git a/src/mainboard/intel/wtm2/acpi_tables.c b/src/mainboard/intel/wtm2/acpi_tables.c
index 62eb09aff6..53c8926fb6 100644
--- a/src/mainboard/intel/wtm2/acpi_tables.c
+++ b/src/mainboard/intel/wtm2/acpi_tables.c
@@ -2,7 +2,6 @@
 
 #include <acpi/acpi.h>
 #include <acpi/acpi_gnvs.h>
-#include <arch/ioapic.h>
 #include <device/device.h>
 #include <soc/acpi.h>
 #include <soc/nvs.h>
@@ -23,18 +22,6 @@ void acpi_create_gnvs(struct global_nvs *gnvs)
 	gnvs->tmax = MAX_TEMPERATURE;
 }
 
-unsigned long acpi_fill_madt(unsigned long current)
-{
-	/* Local APICs */
-	current = acpi_create_madt_lapics(current);
-
-	/* IOAPIC */
-	current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *) current,
-				2, IO_APIC_ADDR, 0);
-
-	return acpi_madt_irq_overrides(current);
-}
-
 void mainboard_fill_fadt(acpi_fadt_t *fadt)
 {
 	fadt->preferred_pm_profile = PM_MOBILE;
diff --git a/src/mainboard/purism/librem_bdw/acpi_tables.c b/src/mainboard/purism/librem_bdw/acpi_tables.c
index ca6f64b089..df3d15e965 100644
--- a/src/mainboard/purism/librem_bdw/acpi_tables.c
+++ b/src/mainboard/purism/librem_bdw/acpi_tables.c
@@ -2,7 +2,6 @@
 
 #include <acpi/acpi.h>
 #include <acpi/acpi_gnvs.h>
-#include <arch/ioapic.h>
 #include <soc/acpi.h>
 #include <soc/nvs.h>
 
@@ -10,15 +9,3 @@ void acpi_create_gnvs(struct global_nvs *gnvs)
 {
 	acpi_init_gnvs(gnvs);
 }
-
-unsigned long acpi_fill_madt(unsigned long current)
-{
-	/* Local APICs */
-	current = acpi_create_madt_lapics(current);
-
-	/* IOAPIC */
-	current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *) current,
-				2, IO_APIC_ADDR, 0);
-
-	return acpi_madt_irq_overrides(current);
-}
diff --git a/src/soc/intel/broadwell/acpi.c b/src/soc/intel/broadwell/acpi.c
index 1b4db1dae6..3d5e74ae5c 100644
--- a/src/soc/intel/broadwell/acpi.c
+++ b/src/soc/intel/broadwell/acpi.c
@@ -3,6 +3,7 @@
 #include <acpi/acpi.h>
 #include <acpi/acpi_gnvs.h>
 #include <acpi/acpigen.h>
+#include <arch/ioapic.h>
 #include <arch/smp/mpspec.h>
 #include <cbmem.h>
 #include <device/pci_ops.h>
@@ -496,12 +497,18 @@ unsigned long northbridge_write_acpi_tables(const struct device *const dev,
 	return current;
 }
 
-unsigned long acpi_madt_irq_overrides(unsigned long current)
+unsigned long acpi_fill_madt(unsigned long current)
 {
 	int sci = acpi_sci_irq();
 	acpi_madt_irqoverride_t *irqovr;
 	uint16_t flags = MP_IRQ_TRIGGER_LEVEL;
 
+	/* Local APICs */
+	current = acpi_create_madt_lapics(current);
+
+	/* IOAPIC */
+	current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *)current, 2, IO_APIC_ADDR, 0);
+
 	/* INT_SRC_OVR */
 	irqovr = (void *)current;
 	current += acpi_create_madt_irqoverride(irqovr, 0, 0, 2, 0);
diff --git a/src/soc/intel/broadwell/include/soc/acpi.h b/src/soc/intel/broadwell/include/soc/acpi.h
index 0bf63a495e..39d6cb4692 100644
--- a/src/soc/intel/broadwell/include/soc/acpi.h
+++ b/src/soc/intel/broadwell/include/soc/acpi.h
@@ -12,7 +12,6 @@
 #define PSS_LATENCY_TRANSITION		10
 #define PSS_LATENCY_BUSMASTER		10
 
-unsigned long acpi_madt_irq_overrides(unsigned long current);
 unsigned long northbridge_write_acpi_tables(const struct device *dev,
 	unsigned long current, struct acpi_rsdp *rsdp);
 #endif
-- 
cgit v1.2.3