diff options
Diffstat (limited to 'arch/i386/kernel/io_apic.c')
-rw-r--r-- | arch/i386/kernel/io_apic.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index be074cac6..219e7f853 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c @@ -271,7 +271,7 @@ void setup_IO_APIC_irqs (void) if (!IO_APIC_IRQ(irq)) continue; - entry.vector = IO_APIC_GATE_OFFSET + (irq<<3); + entry.vector = IO_APIC_VECTOR(irq); /* * Determine IRQ line polarity (high active or low active): @@ -383,7 +383,7 @@ void setup_IO_APIC_irq_ISA_default (unsigned int irq) entry.mask = 1; /* unmask IRQ now */ entry.dest.logical.logical_dest = 0xff; /* all CPUs */ - entry.vector = IO_APIC_GATE_OFFSET + (irq<<3); + entry.vector = IO_APIC_VECTOR(irq); entry.polarity=0; entry.trigger=0; @@ -513,7 +513,7 @@ void print_IO_APIC (void) return; } -void init_sym_mode (void) +static void init_sym_mode (void) { printk("enabling Symmetric IO mode ... "); outb (0x70, 0x22); @@ -521,6 +521,14 @@ void init_sym_mode (void) printk("...done.\n"); } +void init_pic_mode (void) +{ + printk("disabling Symmetric IO mode ... "); + outb (0x70, 0x22); + outb (0x00, 0x23); + printk("...done.\n"); +} + char ioapic_OEM_ID [16]; char ioapic_Product_ID [16]; |