]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/x86/pci/irq.c
Merge commit 'v2.6.29' into x86/setup-lzma
[mv-sheeva.git] / arch / x86 / pci / irq.c
index e1d605bfeb47aba38b8c53064737e95605ae1493..fecbce6e7d7c20d1f0af750e2305ef4e9a37a92c 100644 (file)
@@ -572,6 +572,7 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
        case PCI_DEVICE_ID_INTEL_ICH7_1:
        case PCI_DEVICE_ID_INTEL_ICH7_30:
        case PCI_DEVICE_ID_INTEL_ICH7_31:
+       case PCI_DEVICE_ID_INTEL_TGP_LPC:
        case PCI_DEVICE_ID_INTEL_ESB2_0:
        case PCI_DEVICE_ID_INTEL_ICH8_0:
        case PCI_DEVICE_ID_INTEL_ICH8_1:
@@ -1068,7 +1069,7 @@ static void __init pcibios_fixup_irqs(void)
                                struct pci_dev *bridge = dev->bus->self;
                                int bus;
 
-                               pin = (((pin - 1) + PCI_SLOT(dev->devfn)) % 4) + 1;
+                               pin = pci_swizzle_interrupt_pin(dev, pin);
                                bus = bridge->bus->number;
                                irq = IO_APIC_get_PCI_irq_vector(bus,
                                                PCI_SLOT(bridge->devfn), pin - 1);
@@ -1232,7 +1233,7 @@ static int pirq_enable_irq(struct pci_dev *dev)
                        while (irq < 0 && dev->bus->parent) { /* go back to the bridge */
                                struct pci_dev *bridge = dev->bus->self;
 
-                               pin = (((pin - 1) + PCI_SLOT(dev->devfn)) % 4) + 1;
+                               pin = pci_swizzle_interrupt_pin(dev, pin);
                                irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number,
                                                PCI_SLOT(bridge->devfn), pin - 1);
                                if (irq >= 0)