From 50e143ff8b530a48c06dff87ed2817aa24dc4156 Mon Sep 17 00:00:00 2001
From: Bjorn Helgaas <bjorn.helgaas@hp.com>
Date: Thu, 7 Aug 2003 09:48:13 -0700
Subject: [PATCH] [PATCH] ia64: IOSAPIC .weak symbol cleanup

The patch below removes the .weak symbol stuff from iosapic.c.

As far as I can tell, iosapic.c is compiled for every flavor except
the simulator.  I tried to boot the HP_SIM kernel on ski, but it
seems to loop in find_save_locs().  This happens both with and
without this patch, so maybe I have a local problem.  (I started
with a clean tree, did make
---
 arch/ia64/kernel/acpi.c    | 28 ++--------------------------
 include/asm-ia64/iosapic.h |  9 +++++++++
 2 files changed, 11 insertions(+), 26 deletions(-)

diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 201f05e74c5a..339cd5ab44c3 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -51,13 +51,6 @@
 
 #define PREFIX			"ACPI: "
 
-asm (".weak iosapic_register_intr");
-asm (".weak iosapic_override_isa_irq");
-asm (".weak iosapic_register_platform_intr");
-asm (".weak iosapic_init");
-asm (".weak iosapic_system_init");
-asm (".weak iosapic_version");
-
 void (*pm_idle) (void);
 void (*pm_power_off) (void);
 
@@ -241,8 +234,7 @@ acpi_parse_iosapic (acpi_table_entry_header *header)
 
 	acpi_table_print_madt_entry(header);
 
-	if (iosapic_init)
-		iosapic_init(iosapic->address, iosapic->global_irq_base);
+	iosapic_init(iosapic->address, iosapic->global_irq_base);
 
 	return 0;
 }
@@ -260,11 +252,6 @@ acpi_parse_plat_int_src (acpi_table_entry_header *header)
 
 	acpi_table_print_madt_entry(header);
 
-	if (!iosapic_register_platform_intr) {
-		printk(KERN_WARNING PREFIX "No ACPI platform interrupt support\n");
-		return -ENODEV;
-	}
-
 	/*
 	 * Get vector assignment for this interrupt, set attributes,
 	 * and program the IOSAPIC routing table.
@@ -293,10 +280,6 @@ acpi_parse_int_src_ovr (acpi_table_entry_header *header)
 
 	acpi_table_print_madt_entry(header);
 
-	/* Ignore if the platform doesn't support overrides */
-	if (!iosapic_override_isa_irq)
-		return 0;
-
 	iosapic_override_isa_irq(p->bus_irq, p->global_irq,
 				 (p->flags.polarity == 1) ? IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW,
 				 (p->flags.trigger == 1) ? IOSAPIC_EDGE : IOSAPIC_LEVEL);
@@ -334,8 +317,7 @@ acpi_parse_madt (unsigned long phys_addr, unsigned long size)
 #else
 	has_8259 = acpi_madt->flags.pcat_compat;
 #endif
-	if (iosapic_system_init)
-		iosapic_system_init(has_8259);
+	iosapic_system_init(has_8259);
 
 	/* Get base address of IPI Message Block */
 
@@ -549,9 +531,6 @@ acpi_parse_fadt (unsigned long phys_addr, unsigned long size)
 	if (!(fadt->iapc_boot_arch & BAF_8042_KEYBOARD_CONTROLLER))
 		acpi_kbd_controller_present = 0;
 
-	if (!iosapic_register_intr)
-		return 0;	/* just ignore the rest */
-
 	sci_irq = fadt->sci_int;
 
 	if (has_8259 && sci_irq < 16)
@@ -723,9 +702,6 @@ acpi_register_irq (u32 gsi, u32 polarity, u32 trigger)
 	if (has_8259 && (gsi < 16))
 		return isa_irq_to_vector(gsi);
 
-	if (!iosapic_register_intr)
-		return 0;
-
 	/* Turn it on */
 	vector = iosapic_register_intr (gsi,
 			(polarity == ACPI_ACTIVE_HIGH) ? IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW,
diff --git a/include/asm-ia64/iosapic.h b/include/asm-ia64/iosapic.h
index 410fb7269aa6..68fa169e7a5b 100644
--- a/include/asm-ia64/iosapic.h
+++ b/include/asm-ia64/iosapic.h
@@ -51,6 +51,7 @@
 
 #ifndef __ASSEMBLY__
 
+#ifdef CONFIG_IOSAPIC
 extern void __init iosapic_system_init (int pcat_compat);
 extern void __init iosapic_init (unsigned long address,
 				    unsigned int gsi_base);
@@ -72,6 +73,14 @@ extern int __init iosapic_register_platform_intr (u32 int_type,
 extern unsigned int iosapic_version (char *addr);
 
 extern void iosapic_pci_fixup (int);
+#else
+#define iosapic_system_init(pcat_compat)			do { } while (0)
+#define iosapic_init(address,gsi_base)				do { } while (0)
+#define iosapic_register_intr(gsi,polarity,trigger)		(gsi)
+#define iosapic_override_isa_irq(isa_irq,gsi,polarity,trigger)	do { } while (0)
+#define iosapic_register_platform_intr(type,gsi,pmi,eid,id, \
+	polarity,trigger)					(gsi)
+#endif
 
 # endif /* !__ASSEMBLY__ */
 #endif /* __ASM_IA64_IOSAPIC_H */
-- 
2.30.9