On Sun, Apr 12, 2020 at 2:29 PM Philippe Mathieu-Daudé <f4...@amsat.org> wrote: > > Switch to using the qdev gpio API which is preferred over > qemu_allocate_irqs(). One step to eventually deprecate and > remove qemu_allocate_irqs() one day. > > Patch created mechanically using spatch with this script > inspired from commit d6ef883d9d7: > > @@ > typedef qemu_irq; > identifier irqs, handler; > expression opaque, count, i; > @@ > - qemu_irq *irqs; > ... > - irqs = qemu_allocate_irqs(handler, opaque, count); > + qdev_init_gpio_in(DEVICE(opaque), handler, count); > <+... > - irqs[i] > + qdev_get_gpio_in(DEVICE(opaque), i) > ...+> > ?- g_free(irqs); > > Inspired-by: Peter Maydell <peter.mayd...@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > hw/ide/ahci.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c > index 13d91e109a..ef0a0a22ee 100644 > --- a/hw/ide/ahci.c > +++ b/hw/ide/ahci.c > @@ -1534,19 +1534,18 @@ void ahci_init(AHCIState *s, DeviceState *qdev) > > void ahci_realize(AHCIState *s, DeviceState *qdev, AddressSpace *as, int > ports) > { > - qemu_irq *irqs; > int i; > > s->as = as; > s->ports = ports; > s->dev = g_new0(AHCIDevice, ports); > ahci_reg_init(s); > - irqs = qemu_allocate_irqs(ahci_irq_set, s, s->ports); > + qdev_init_gpio_in(DEVICE(s), ahci_irq_set, s->ports); > for (i = 0; i < s->ports; i++) { > AHCIDevice *ad = &s->dev[i]; > > ide_bus_new(&ad->port, sizeof(ad->port), qdev, i, 1); > - ide_init2(&ad->port, irqs[i]); > + ide_init2(&ad->port, qdev_get_gpio_in(DEVICE(s), i)); > > ad->hba = s; > ad->port_no = i; > @@ -1554,7 +1553,6 @@ void ahci_realize(AHCIState *s, DeviceState *qdev, > AddressSpace *as, int ports) > ad->port.dma->ops = &ahci_dma_ops; > ide_register_restart_cb(&ad->port); > } > - g_free(irqs); > } > > void ahci_uninit(AHCIState *s) > -- > 2.21.1 > >