[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [qemu-xen master] ppc: Make uninorth interrupt swizzling identical to Grackle



commit 39d97e14a151519c81955a0b82352b5596432f63
Author:     Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
AuthorDate: Mon Nov 21 00:12:31 2016 +1000
Commit:     David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
CommitDate: Wed Nov 23 12:00:48 2016 +1100

    ppc: Make uninorth interrupt swizzling identical to Grackle
    
    It's currently broken as it uses an incorrect shift, it tries
    to use the slot number but uses the top bits of the bus number
    instead.
    
    Note: Neither implementation matches what OpenBIOS ends up putting
    in the device-tree either, which will have to be fixed separately.
    
    This is not quite correct for modelling a real Mac since Apple
    tend to tie all 4 interrupt lines of a slot together and have
    separate interrupts for every slot and every motherboard devices
    going straight to the PIC but we'll sort that out later.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
    Reviewed-by: Thomas Huth <thuth@xxxxxxxxxx>
    Signed-off-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
---
 hw/pci-host/uninorth.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/hw/pci-host/uninorth.c b/hw/pci-host/uninorth.c
index 7aac4d6..df342ac 100644
--- a/hw/pci-host/uninorth.c
+++ b/hw/pci-host/uninorth.c
@@ -62,9 +62,7 @@ typedef struct UNINState {
 
 static int pci_unin_map_irq(PCIDevice *pci_dev, int irq_num)
 {
-    int devfn = pci_dev->devfn & 0x00FFFFFF;
-
-    return (((devfn >> 11) & 0x1F) + irq_num) & 3;
+    return (irq_num + (pci_dev->devfn >> 3)) & 3;
 }
 
 static void pci_unin_set_irq(void *opaque, int irq_num, int level)
--
generated by git-patchbot for /home/xen/git/qemu-xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.