diff options
Diffstat (limited to 'arch/x86/pci/irq.c')
-rw-r--r-- | arch/x86/pci/irq.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c index 2f3e192615c0..0696d506c4ad 100644 --- a/arch/x86/pci/irq.c +++ b/arch/x86/pci/irq.c | |||
@@ -1200,14 +1200,11 @@ static int pirq_enable_irq(struct pci_dev *dev) | |||
1200 | #ifdef CONFIG_X86_IO_APIC | 1200 | #ifdef CONFIG_X86_IO_APIC |
1201 | struct pci_dev *temp_dev; | 1201 | struct pci_dev *temp_dev; |
1202 | int irq; | 1202 | int irq; |
1203 | int ioapic = -1, ioapic_pin = -1; | 1203 | struct io_apic_irq_attr irq_attr; |
1204 | int triggering, polarity; | ||
1205 | 1204 | ||
1206 | irq = IO_APIC_get_PCI_irq_vector(dev->bus->number, | 1205 | irq = IO_APIC_get_PCI_irq_vector(dev->bus->number, |
1207 | PCI_SLOT(dev->devfn), | 1206 | PCI_SLOT(dev->devfn), |
1208 | pin - 1, | 1207 | pin - 1, &irq_attr); |
1209 | &ioapic, &ioapic_pin, | ||
1210 | &triggering, &polarity); | ||
1211 | /* | 1208 | /* |
1212 | * Busses behind bridges are typically not listed in the MP-table. | 1209 | * Busses behind bridges are typically not listed in the MP-table. |
1213 | * In this case we have to look up the IRQ based on the parent bus, | 1210 | * In this case we have to look up the IRQ based on the parent bus, |
@@ -1221,9 +1218,7 @@ static int pirq_enable_irq(struct pci_dev *dev) | |||
1221 | pin = pci_swizzle_interrupt_pin(dev, pin); | 1218 | pin = pci_swizzle_interrupt_pin(dev, pin); |
1222 | irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, | 1219 | irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, |
1223 | PCI_SLOT(bridge->devfn), | 1220 | PCI_SLOT(bridge->devfn), |
1224 | pin - 1, | 1221 | pin - 1, &irq_attr); |
1225 | &ioapic, &ioapic_pin, | ||
1226 | &triggering, &polarity); | ||
1227 | if (irq >= 0) | 1222 | if (irq >= 0) |
1228 | dev_warn(&dev->dev, "using bridge %s " | 1223 | dev_warn(&dev->dev, "using bridge %s " |
1229 | "INT %c to get IRQ %d\n", | 1224 | "INT %c to get IRQ %d\n", |
@@ -1233,9 +1228,8 @@ static int pirq_enable_irq(struct pci_dev *dev) | |||
1233 | } | 1228 | } |
1234 | dev = temp_dev; | 1229 | dev = temp_dev; |
1235 | if (irq >= 0) { | 1230 | if (irq >= 0) { |
1236 | io_apic_set_pci_routing(&dev->dev, ioapic, | 1231 | io_apic_set_pci_routing(&dev->dev, irq, |
1237 | ioapic_pin, irq, | 1232 | &irq_attr); |
1238 | triggering, polarity); | ||
1239 | dev->irq = irq; | 1233 | dev->irq = irq; |
1240 | dev_info(&dev->dev, "PCI->APIC IRQ transform: " | 1234 | dev_info(&dev->dev, "PCI->APIC IRQ transform: " |
1241 | "INT %c -> IRQ %d\n", 'A' + pin - 1, irq); | 1235 | "INT %c -> IRQ %d\n", 'A' + pin - 1, irq); |