qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v3 3/3] spapr: make irq customizable via qdev


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH v3 3/3] spapr: make irq customizable via qdev
Date: Tue, 07 Jun 2011 09:51:20 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Paolo Bonzini <address@hidden> writes:

> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
>  hw/spapr_vio.c |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/hw/spapr_vio.c b/hw/spapr_vio.c
> index 6f34159..a193caa 100644
> --- a/hw/spapr_vio.c
> +++ b/hw/spapr_vio.c
> @@ -52,6 +52,10 @@
>  static struct BusInfo spapr_vio_bus_info = {
>      .name       = "spapr-vio",
>      .size       = sizeof(VIOsPAPRBus),
> +    .props = (Property[]) {
> +        DEFINE_PROP_UINT32("irq", VIOsPAPRDevice, vio_irq_num, 0), \
> +        DEFINE_PROP_END_OF_LIST(),
> +    },
>  };

Out of this patch's scope, but I need to ask anyway: do devices on a
spapr-vio bus have a unique address?  If yes, what is it?

>  
>  VIOsPAPRDevice *spapr_vio_find_by_reg(VIOsPAPRBus *bus, uint32_t reg)
> @@ -603,7 +607,9 @@ static int spapr_vio_busdev_init(DeviceState *qdev, 
> DeviceInfo *qinfo)
>      }
>  
>      dev->qdev.id = id;
> -    dev->vio_irq_num = spapr_allocate_irq (spapr);
> +    if (!dev->vio_irq_num) {
> +        dev->vio_irq_num = spapr_allocate_irq (spapr);
> +    }
>      dev->qirq = xics_find_qirq(spapr->icp, dev->vio_irq_num);
>  
>      rtce_init(dev);

Is it okay to share interrupts?  I'm asking because spapr_allocate_irq()
will happily assign IRQs already used via property.  From PATCH 1/1:

static inline int spapr_allocate_irq(sPAPREnvironment *spapr)
{
    return spapr->next_irq++;
}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]