From 903ce9fefacd828bbcadd656ddaed8984139be29 Mon Sep 17 00:00:00 2001 From: Artyom Tarasenko Date: Sat, 27 Apr 2013 07:55:13 +0200 Subject: [PATCH] sparc64: use direct interrupt mapping for PCI devices MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every PCI Slot in PBM has 4 directly mapped IRQ lines. Use the IRQ routing schema 0bssnn (Bus, Slot, interrupt Number) described in Section 19.3.3 of UltraSPARCâ„¢-IIi User's Manual. Please note that this patch requires the OpenBIOS counterpart patch. Signed-off-by: Artyom Tarasenko Signed-off-by: Blue Swirl --- hw/pci-host/apb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/pci-host/apb.c b/hw/pci-host/apb.c index ccd38d0a53..e0996556e5 100644 --- a/hw/pci-host/apb.c +++ b/hw/pci-host/apb.c @@ -365,7 +365,7 @@ static int pci_pbm_map_irq(PCIDevice *pci_dev, int irq_num) bus_offset = 16; else bus_offset = 0; - return bus_offset + irq_num; + return (bus_offset + (PCI_SLOT(pci_dev->devfn) << 2) + irq_num) & 0x1f; } static void pci_apb_set_irq(void *opaque, int irq_num, int level)