From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Kardashevskiy Date: Thu, 14 Jun 2012 04:36:42 +0000 Subject: [PATCH] pseries pci: removed dt_irq from PCI host bus Message-Id: <4FD96A5A.5050605@ozlabs.ru> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-ppc@vger.kernel.org, "qemu-devel@nongnu.org" , Benjamin Herrenschmidt As it is a very quick operation to resolve qirq from IRQ number, it makes no sense to cache it anywhere but its original source i.e. XICS. Signed-off-by: Alexey Kardashevskiy --- hw/spapr_pci.c | 14 +++++--------- hw/spapr_pci.h | 1 - 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c index 269dbbf..93017cd 100644 --- a/hw/spapr_pci.c +++ b/hw/spapr_pci.c @@ -162,7 +162,9 @@ static void pci_spapr_set_irq(void *opaque, int irq_num, int level) */ sPAPRPHBState *phb = opaque; - qemu_set_irq(phb->lsi_table[irq_num].qirq, level); + qemu_set_irq(xics_assign_irq(spapr->icp, + phb->lsi_table[irq_num].dt_irq, XICS_LSI), + level); } static uint64_t spapr_io_read(void *opaque, target_phys_addr_t addr, @@ -268,16 +270,10 @@ static int spapr_phb_init(SysBusDevice *s) /* Initialize the LSI table */ for (i = 0; i < PCI_NUM_PINS; i++) { - qemu_irq qirq; - uint32_t num; - - qirq = spapr_allocate_lsi(0, &num); - if (!qirq) { + if (!spapr_allocate_lsi(0, &phb->lsi_table[i].dt_irq)) { + fprintf(stderr, "Failed to allocate LSI IRQ pin %u\n", i); return -1; } - - phb->lsi_table[i].dt_irq = num; - phb->lsi_table[i].qirq = qirq; } return 0; diff --git a/hw/spapr_pci.h b/hw/spapr_pci.h index dd66f4b..11c3ee1 100644 --- a/hw/spapr_pci.h +++ b/hw/spapr_pci.h @@ -41,7 +41,6 @@ typedef struct sPAPRPHBState { struct { uint32_t dt_irq; - qemu_irq qirq; } lsi_table[PCI_NUM_PINS]; QLIST_ENTRY(sPAPRPHBState) list; -- 1.7.7.3