]> git.proxmox.com Git - qemu.git/commitdiff
PPC: E500: PCI: Make IRQ calculation more generic
authorAlexander Graf <agraf@suse.de>
Wed, 12 Dec 2012 11:58:12 +0000 (12:58 +0100)
committerAlexander Graf <agraf@suse.de>
Fri, 14 Dec 2012 12:12:57 +0000 (13:12 +0100)
The IRQ line calculation is more or less hardcoded today. Instead, let's
write it as an algorithmic function that theoretically allows an arbitrary
number of PCI slots.

Signed-off-by: Alexander Graf <agraf@suse.de>
hw/ppce500_pci.c

index 4cd4edc85ba6929cda368bd0a060bb65f0dde2c8..561a77661dcb01b036213a6188272855cb3fcc8b 100644 (file)
@@ -253,17 +253,10 @@ static const MemoryRegionOps e500_pci_reg_ops = {
 
 static int mpc85xx_pci_map_irq(PCIDevice *pci_dev, int irq_num)
 {
-    int devno = pci_dev->devfn >> 3, ret = 0;
+    int devno = pci_dev->devfn >> 3;
+    int ret;
 
-    switch (devno) {
-        /* Two PCI slot */
-        case 0x11:
-        case 0x12:
-            ret = (irq_num + devno - 0x10) % 4;
-            break;
-        default:
-            printf("Error:%s:unknown dev number\n", __func__);
-    }
+    ret = (irq_num + devno) % 4;
 
     pci_debug("%s: devfn %x irq %d -> %d  devno:%x\n", __func__,
            pci_dev->devfn, irq_num, ret, devno);