On Wed, Sep 13, 2017 at 11:46:42AM +0200, Eric Auger wrote: > From: Pranavkumar Sawargaonkar <pranavku...@linaro.org> > > To implement INTx to gsi routing we need to pass the gpex host > bridge the gsi associated to each INTx index. Let's introduce > irq_num array and gpex_set_irq_num setter function. > > Signed-off-by: Pranavkumar Sawargaonkar <pranavku...@linaro.org> > Signed-off-by: Tushar Jagad <tushar.ja...@linaro.org> > Signed-off-by: Eric Auger <eric.au...@redhat.com> > Tested-by: Feng Kan <f...@apm.com> > > --- > > v3 -> v4: > - use int for gsi > --- > hw/pci-host/gpex.c | 10 ++++++++++ > include/hw/pci-host/gpex.h | 3 +++ > 2 files changed, 13 insertions(+) > > diff --git a/hw/pci-host/gpex.c b/hw/pci-host/gpex.c > index 83084b9..41a884d 100644 > --- a/hw/pci-host/gpex.c > +++ b/hw/pci-host/gpex.c > @@ -43,6 +43,16 @@ static void gpex_set_irq(void *opaque, int irq_num, int > level) > qemu_set_irq(s->irq[irq_num], level); > } > > +int gpex_set_irq_num(GPEXHost *s, int index, int gsi) > +{ > + if (index >= GPEX_NUM_IRQS) { > + return -EINVAL; > + } > + > + s->irq_num[index] = gsi; > + return 0; > +} > + > static void gpex_host_realize(DeviceState *dev, Error **errp) > { > PCIHostState *pci = PCI_HOST_BRIDGE(dev); > diff --git a/include/hw/pci-host/gpex.h b/include/hw/pci-host/gpex.h > index 68c9348..aef38b8 100644 > --- a/include/hw/pci-host/gpex.h > +++ b/include/hw/pci-host/gpex.h > @@ -51,6 +51,9 @@ typedef struct GPEXHost { > MemoryRegion io_ioport; > MemoryRegion io_mmio; > qemu_irq irq[GPEX_NUM_IRQS]; > + int irq_num[GPEX_NUM_IRQS]; > } GPEXHost; > > +int gpex_set_irq_num(GPEXHost *s, int index, int gsi); > + > #endif /* HW_GPEX_H */ > -- > 2.5.5 >
Reviewed-by: Andrew Jones <drjo...@redhat.com>