Fix the irq mapping for routerboard devices (#1843)
authorFlorian Fainelli <florian@openwrt.org>
Mon, 11 Jun 2007 10:07:52 +0000 (10:07 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Mon, 11 Jun 2007 10:07:52 +0000 (10:07 +0000)
SVN-Revision: 7560

target/linux/adm5120-2.6/files/arch/mips/pci/fixup-adm5120.c

index 9f65e350adc92d7bc9d96b66534a18ae494b4140..07119ef3adae0cc877ec7d2ab684578e1e191b03 100644 (file)
@@ -66,11 +66,7 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
        int irq;
        
        irq = -1;
-#if 1
-       /* FIXME: this code should be working on all boards? */
-       if (slot > 0 && slot < 4)
-               irq = ADM5120_IRQ_PCI0+slot-1;
-#else  
+
        switch (mips_machtype) {
        case MACH_ADM5120_RB_111:
        case MACH_ADM5120_RB_112:
@@ -78,14 +74,14 @@ int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
        case MACH_ADM5120_RB_133C:
        case MACH_ADM5120_RB_153:
                if (slot > 0 && slot < 4)
-                       irq = ADM5120_IRQ_PCI0+slot-1;
+                       irq = slot + 5;
                break;
        default:
                if (slot > 1 && slot < 5)
-                       irq = ADM5120_IRQ_PCI0+slot-2;
+                       irq = ADM5120_IRQ_PCI0+slot-1;
                break;
        }
-#endif
+       
        printk(KERN_INFO "PCI: mapping irq for device %s, slot:%u, pin:%u, "
                "irq:%d\n", pci_name(dev), slot, pin, irq);