aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/io_apic_64.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-07-10 04:59:59 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-10 04:59:59 -0400
commit2179bab7d431ab8ed539e19e029b1f6a231f4ed3 (patch)
treec28e82816d54c1e0c4bcabfd378d86b6a7cd7089 /arch/x86/kernel/io_apic_64.c
parent18b743dc948aaddc46258b73f17bdec2ee4019ee (diff)
Revert "x86: fix IO APIC breakage on HP nx6325, v2"
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>
Diffstat (limited to 'arch/x86/kernel/io_apic_64.c')
-rw-r--r--arch/x86/kernel/io_apic_64.c28
1 files changed, 2 insertions, 26 deletions
diff --git a/arch/x86/kernel/io_apic_64.c b/arch/x86/kernel/io_apic_64.c
index 0494cdb270c5..83c953af9cd8 100644
--- a/arch/x86/kernel/io_apic_64.c
+++ b/arch/x86/kernel/io_apic_64.c
@@ -373,26 +373,6 @@ static void add_pin_to_irq(unsigned int irq, int apic, int pin)
373 entry->pin = pin; 373 entry->pin = pin;
374} 374}
375 375
376/*
377 * Reroute an IRQ to a different pin.
378 */
379static void __init replace_pin_at_irq(unsigned int irq,
380 int oldapic, int oldpin,
381 int newapic, int newpin)
382{
383 struct irq_pin_list *entry = irq_2_pin + irq;
384
385 while (1) {
386 if (entry->apic == oldapic && entry->pin == oldpin) {
387 entry->apic = newapic;
388 entry->pin = newpin;
389 }
390 if (!entry->next)
391 break;
392 entry = irq_2_pin + entry->next;
393 }
394}
395
396 376
397#define DO_ACTION(name,R,ACTION, FINAL) \ 377#define DO_ACTION(name,R,ACTION, FINAL) \
398 \ 378 \
@@ -1724,11 +1704,6 @@ static inline void __init check_timer(void)
1724 apic2 = apic1; 1704 apic2 = apic1;
1725 } 1705 }
1726 1706
1727 replace_pin_at_irq(0, 0, 0, apic1, pin1);
1728 apic1 = 0;
1729 pin1 = 0;
1730 setup_timer_IRQ0_pin(apic1, pin1, cfg->vector);
1731
1732 if (pin1 != -1) { 1707 if (pin1 != -1) {
1733 /* 1708 /*
1734 * Ok, does IRQ0 through the IOAPIC work? 1709 * Ok, does IRQ0 through the IOAPIC work?
@@ -1760,9 +1735,10 @@ static inline void __init check_timer(void)
1760 /* 1735 /*
1761 * legacy devices should be connected to IO APIC #0 1736 * legacy devices should be connected to IO APIC #0
1762 */ 1737 */
1763 replace_pin_at_irq(0, apic1, pin1, apic2, pin2); 1738 /* replace_pin_at_irq(0, apic1, pin1, apic2, pin2); */
1764 setup_timer_IRQ0_pin(apic2, pin2, cfg->vector); 1739 setup_timer_IRQ0_pin(apic2, pin2, cfg->vector);
1765 unmask_IO_APIC_irq(0); 1740 unmask_IO_APIC_irq(0);
1741 clear_IO_APIC_pin(apic2, pin2);
1766 enable_8259A_irq(0); 1742 enable_8259A_irq(0);
1767 if (timer_irq_works()) { 1743 if (timer_irq_works()) {
1768 apic_printk(APIC_VERBOSE," works.\n"); 1744 apic_printk(APIC_VERBOSE," works.\n");