aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/io_apic_32.c
diff options
context:
space:
mode:
authorAlexey Starikovskiy <astarikovskiy@suse.de>2008-03-20 07:54:49 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:40:59 -0400
commit643befed1090af5f0000297ce11fa23e2777f42b (patch)
tree15ba54000c8a380741407dacb4b0a7c626650212 /arch/x86/kernel/io_apic_32.c
parent9c0076cb34a0ea968413d9a1ccb6c7c850d3a1ee (diff)
x86: use not_pci bitmap #6
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/io_apic_32.c')
-rw-r--r--arch/x86/kernel/io_apic_32.c47
1 files changed, 15 insertions, 32 deletions
diff --git a/arch/x86/kernel/io_apic_32.c b/arch/x86/kernel/io_apic_32.c
index e400f77eb0e0..97ac6104d63a 100644
--- a/arch/x86/kernel/io_apic_32.c
+++ b/arch/x86/kernel/io_apic_32.c
@@ -1091,39 +1091,22 @@ static int pin_2_irq(int idx, int apic, int pin)
1091 if (mp_irqs[idx].mpc_dstirq != pin) 1091 if (mp_irqs[idx].mpc_dstirq != pin)
1092 printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n"); 1092 printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n");
1093 1093
1094 switch (mp_bus_id_to_type[bus]) 1094 if (test_bit(bus, mp_bus_not_pci))
1095 { 1095 irq = mp_irqs[idx].mpc_srcbusirq;
1096 case MP_BUS_ISA: /* ISA pin */ 1096 else {
1097 case MP_BUS_EISA: 1097 /*
1098 case MP_BUS_MCA: 1098 * PCI IRQs are mapped in order
1099 { 1099 */
1100 irq = mp_irqs[idx].mpc_srcbusirq; 1100 i = irq = 0;
1101 break; 1101 while (i < apic)
1102 } 1102 irq += nr_ioapic_registers[i++];
1103 case MP_BUS_PCI: /* PCI pin */ 1103 irq += pin;
1104 {
1105 /*
1106 * PCI IRQs are mapped in order
1107 */
1108 i = irq = 0;
1109 while (i < apic)
1110 irq += nr_ioapic_registers[i++];
1111 irq += pin;
1112
1113 /*
1114 * For MPS mode, so far only needed by ES7000 platform
1115 */
1116 if (ioapic_renumber_irq)
1117 irq = ioapic_renumber_irq(apic, irq);
1118 1104
1119 break; 1105 /*
1120 } 1106 * For MPS mode, so far only needed by ES7000 platform
1121 default: 1107 */
1122 { 1108 if (ioapic_renumber_irq)
1123 printk(KERN_ERR "unknown bus type %d.\n",bus); 1109 irq = ioapic_renumber_irq(apic, irq);
1124 irq = 0;
1125 break;
1126 }
1127 } 1110 }
1128 1111
1129 /* 1112 /*