[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 1/3] hw/pci-host/gpex: Set INTx index/gsi map
From: |
Andrew Jones |
Subject: |
Re: [Qemu-devel] [PATCH v4 1/3] hw/pci-host/gpex: Set INTx index/gsi mapping |
Date: |
Wed, 13 Sep 2017 13:45:30 +0200 |
User-agent: |
Mutt/1.6.0.1 (2016-04-01) |
On Wed, Sep 13, 2017 at 11:46:42AM +0200, Eric Auger wrote:
> From: Pranavkumar Sawargaonkar <address@hidden>
>
> 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 <address@hidden>
> Signed-off-by: Tushar Jagad <address@hidden>
> Signed-off-by: Eric Auger <address@hidden>
> Tested-by: Feng Kan <address@hidden>
>
> ---
>
> 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 <address@hidden>