|
@@ -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");
|