Revert "x86: fix IO APIC breakage on HP nx6325, v2"
authorIngo Molnar <mingo@elte.hu>
Thu, 10 Jul 2008 08:59:59 +0000 (10:59 +0200)
committerIngo Molnar <mingo@elte.hu>
Thu, 10 Jul 2008 08:59:59 +0000 (10:59 +0200)
This reverts commit a74a1cc3df0be89658bc735c8aed80c8392e2c15.

This was just temporary diagnostics commit - not needed now that we've
got the final fix.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/io_apic_64.c

index 0494cdb270c5c96e43e765bb8f659c871e018d04..83c953af9cd8d574dba1643be6574a692383c6a2 100644 (file)
@@ -373,26 +373,6 @@ static void add_pin_to_irq(unsigned int irq, int apic, int pin)
        entry->pin = pin;
 }
 
-/*
- * Reroute an IRQ to a different pin.
- */
-static void __init replace_pin_at_irq(unsigned int irq,
-                                     int oldapic, int oldpin,
-                                     int newapic, int newpin)
-{
-       struct irq_pin_list *entry = irq_2_pin + irq;
-
-       while (1) {
-               if (entry->apic == oldapic && entry->pin == oldpin) {
-                       entry->apic = newapic;
-                       entry->pin = newpin;
-               }
-               if (!entry->next)
-                       break;
-               entry = irq_2_pin + entry->next;
-       }
-}
-
 
 #define DO_ACTION(name,R,ACTION, FINAL)                                        \
                                                                        \
@@ -1724,11 +1704,6 @@ static inline void __init check_timer(void)
                apic2 = apic1;
        }
 
-       replace_pin_at_irq(0, 0, 0, apic1, pin1);
-       apic1 = 0;
-       pin1 = 0;
-       setup_timer_IRQ0_pin(apic1, pin1, cfg->vector);
-
        if (pin1 != -1) {
                /*
                 * Ok, does IRQ0 through the IOAPIC work?
@@ -1760,9 +1735,10 @@ static inline void __init check_timer(void)
                /*
                 * legacy devices should be connected to IO APIC #0
                 */
-               replace_pin_at_irq(0, apic1, pin1, apic2, pin2);
+               /* replace_pin_at_irq(0, apic1, pin1, apic2, pin2); */
                setup_timer_IRQ0_pin(apic2, pin2, cfg->vector);
                unmask_IO_APIC_irq(0);
+               clear_IO_APIC_pin(apic2, pin2);
                enable_8259A_irq(0);
                if (timer_irq_works()) {
                        apic_printk(APIC_VERBOSE," works.\n");