Convert the IRQ allocation calls in hw/arm boards and the OMAP
peripheral models to the parented form.  Thread an Object *owner
through the small helpers that had none:

  omap_timer_clk_setup()  -> +Object *owner
  omap_mcbsp_i2s_attach() -> +Object *owner (no callers, kept for API)

The OMAP init helpers are called multiple times from
omap310_mpu_init() so their IRQ names use the auto-index [*] form.

Assisted-by: Kiro
Signed-off-by: Alexander Graf <[email protected]>
---
 hw/arm/armsse.c         |  5 +++--
 hw/arm/exynos4_boards.c |  3 ++-
 hw/arm/mps2-tz.c        |  3 ++-
 hw/arm/omap1.c          | 29 +++++++++++++++++------------
 hw/arm/realview.c       |  3 ++-
 hw/arm/stellaris.c      | 15 ++++++++++-----
 hw/dma/omap_dma.c       |  5 +++--
 hw/timer/arm_timer.c    |  6 ++++--
 include/hw/arm/omap.h   |  2 +-
 9 files changed, 44 insertions(+), 27 deletions(-)

diff --git a/hw/arm/armsse.c b/hw/arm/armsse.c
index 93f6715224..b25f058020 100644
--- a/hw/arm/armsse.c
+++ b/hw/arm/armsse.c
@@ -693,7 +693,8 @@ static void armsse_forward_sec_resp_cfg(ARMSSE *s)
     DeviceState *dev_splitter = DEVICE(&s->sec_resp_splitter);
 
     qdev_init_gpio_out_named(dev, &s->sec_resp_cfg, "sec_resp_cfg", 1);
-    s->sec_resp_cfg_in = qemu_allocate_irq_orphan(irq_status_forwarder,
+    s->sec_resp_cfg_in = qemu_allocate_irq(OBJECT(s), "sec-resp-cfg-in",
+                                           irq_status_forwarder,
                                            s->sec_resp_cfg, 1);
     qdev_connect_gpio_out(dev_splitter, 2, s->sec_resp_cfg_in);
 }
@@ -1137,7 +1138,7 @@ static void armsse_realize(DeviceState *dev, Error **errp)
     sysbus_mmio_map(sbd_secctl, 0, 0x50080000);
     sysbus_mmio_map(sbd_secctl, 1, 0x40080000);
 
-    s->nsc_cfg_in = qemu_allocate_irq_orphan(nsccfg_handler, s, 1);
+    s->nsc_cfg_in = qemu_allocate_irq(OBJECT(dev), "nsc-cfg-in", 
nsccfg_handler, s, 1);
     qdev_connect_gpio_out_named(dev_secctl, "nsc_cfg", 0, s->nsc_cfg_in);
 
     /* The sec_resp_cfg output from the security controller must be split into
diff --git a/hw/arm/exynos4_boards.c b/hw/arm/exynos4_boards.c
index 537a50f8cc..4f5c99e301 100644
--- a/hw/arm/exynos4_boards.c
+++ b/hw/arm/exynos4_boards.c
@@ -146,7 +146,8 @@ static void smdkc210_init(MachineState *machine)
                                                       EXYNOS4_BOARD_SMDKC210);
 
     lan9215_init(SMDK_LAN9118_BASE_ADDR,
-            qemu_irq_invert_orphan(s->soc.irq_table[exynos4210_get_irq(37, 
1)]));
+            qemu_irq_invert(OBJECT(machine), "lan9118-irq-inv",
+                            s->soc.irq_table[exynos4210_get_irq(37, 1)]));
     arm_load_kernel(s->soc.cpu[0], machine, &exynos4_board_binfo);
 }
 
diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c
index 654eaedd97..ea94f1a6dd 100644
--- a/hw/arm/mps2-tz.c
+++ b/hw/arm/mps2-tz.c
@@ -1209,7 +1209,8 @@ static void mps2tz_common_init(MachineState *machine)
          * Connect the line from the SCC so that we can remap when the
          * guest updates that register.
          */
-        mms->remap_irq = qemu_allocate_irq_orphan(remap_irq_fn, mms, 0);
+        mms->remap_irq = qemu_allocate_irq(OBJECT(machine), "remap-irq",
+                                           remap_irq_fn, mms, 0);
         qdev_connect_gpio_out_named(DEVICE(&mms->scc), "remap", 0,
                                     mms->remap_irq);
     }
diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c
index 53e52ef34e..c193b41f5b 100644
--- a/hw/arm/omap1.c
+++ b/hw/arm/omap1.c
@@ -136,10 +136,11 @@ static void omap_timer_clk_update(void *opaque, int line, 
int on)
     omap_timer_update(timer);
 }
 
-static void omap_timer_clk_setup(struct omap_mpu_timer_s *timer)
+static void omap_timer_clk_setup(Object *owner, struct omap_mpu_timer_s *timer)
 {
     omap_clk_adduser(timer->clk,
-                    qemu_allocate_irq_orphan(omap_timer_clk_update, timer, 0));
+                    qemu_allocate_irq(owner, "rate-irq[*]",
+                                      omap_timer_clk_update, timer, 0));
     timer->rate = omap_clk_getrate(timer->clk);
 }
 
@@ -232,7 +233,7 @@ static struct omap_mpu_timer_s *omap_mpu_timer_init(Object 
*owner,
     s->timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, omap_timer_tick, s);
     s->tick = qemu_bh_new(omap_timer_fire, s);
     omap_mpu_timer_reset(s);
-    omap_timer_clk_setup(s);
+    omap_timer_clk_setup(owner, s);
 
     memory_region_init_io(&s->iomem, owner, &omap_mpu_timer_ops, s,
                           "omap-mpu-timer", 0x100);
@@ -363,7 +364,7 @@ static struct omap_watchdog_timer_s 
*omap_wd_timer_init(Object *owner,
     s->timer.clk = clk;
     s->timer.timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, omap_timer_tick, 
&s->timer);
     omap_wd_timer_reset(s);
-    omap_timer_clk_setup(&s->timer);
+    omap_timer_clk_setup(owner, &s->timer);
 
     memory_region_init_io(&s->iomem, owner, &omap_wd_timer_ops, s,
                           "omap-wd-timer", 0x100);
@@ -472,7 +473,7 @@ static struct omap_32khz_timer_s *omap_os_timer_init(Object 
*owner,
     s->timer.clk = clk;
     s->timer.timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, omap_timer_tick, 
&s->timer);
     omap_os_timer_reset(s);
-    omap_timer_clk_setup(&s->timer);
+    omap_timer_clk_setup(owner, &s->timer);
 
     memory_region_init_io(&s->iomem, owner, &omap_os_timer_ops, s,
                           "omap-os-timer", 0x800);
@@ -2083,14 +2084,15 @@ static struct omap_mpuio_s *omap_mpuio_init(Object 
*owner,
 
     s->irq = gpio_int;
     s->kbd_irq = kbd_int;
-    s->in = qemu_allocate_irqs_orphan(omap_mpuio_set, s, 16);
+    s->in = qemu_allocate_irqs(owner, "mpuio-in", omap_mpuio_set, s, 16);
     omap_mpuio_reset(s);
 
     memory_region_init_io(&s->iomem, owner, &omap_mpuio_ops, s,
                           "omap-mpuio", 0x800);
     memory_region_add_subregion(memory, base, &s->iomem);
 
-    omap_clk_adduser(clk, qemu_allocate_irq_orphan(omap_mpuio_onoff, s, 0));
+    omap_clk_adduser(clk, qemu_allocate_irq(owner, "mpuio-clk-onoff[*]",
+                                            omap_mpuio_onoff, s, 0));
 
     return s;
 }
@@ -2363,7 +2365,8 @@ static struct omap_pwl_s *omap_pwl_init(Object *owner,
                           "omap-pwl", 0x800);
     memory_region_add_subregion(system_memory, base, &s->iomem);
 
-    omap_clk_adduser(clk, qemu_allocate_irq_orphan(omap_pwl_clk_update, s, 0));
+    omap_clk_adduser(clk, qemu_allocate_irq(owner, "pwl-clk-irq[*]",
+                                            omap_pwl_clk_update, s, 0));
     return s;
 }
 
@@ -3423,11 +3426,12 @@ static void omap_mcbsp_i2s_start(void *opaque, int 
line, int level)
     }
 }
 
-void omap_mcbsp_i2s_attach(struct omap_mcbsp_s *s, I2SCodec *slave)
+void omap_mcbsp_i2s_attach(Object *owner, struct omap_mcbsp_s *s, I2SCodec 
*slave)
 {
     s->codec = slave;
-    slave->rx_swallow = qemu_allocate_irq_orphan(omap_mcbsp_i2s_swallow, s, 0);
-    slave->tx_start = qemu_allocate_irq_orphan(omap_mcbsp_i2s_start, s, 0);
+    slave->rx_swallow = qemu_allocate_irq(owner, "rx-swallow[*]",
+                                          omap_mcbsp_i2s_swallow, s, 0);
+    slave->tx_start = qemu_allocate_irq(owner, "tx-start[*]", 
omap_mcbsp_i2s_start, s, 0);
 }
 
 /* LED Pulse Generators */
@@ -3579,7 +3583,8 @@ static struct omap_lpg_s *omap_lpg_init(Object *owner,
                           "omap-lpg", 0x800);
     memory_region_add_subregion(system_memory, base, &s->iomem);
 
-    omap_clk_adduser(clk, qemu_allocate_irq_orphan(omap_lpg_clk_update, s, 0));
+    omap_clk_adduser(clk, qemu_allocate_irq(owner, "lpg-clk-irq[*]",
+                                            omap_lpg_clk_update, s, 0));
 
     return s;
 }
diff --git a/hw/arm/realview.c b/hw/arm/realview.c
index cd63f39f42..99591e7d80 100644
--- a/hw/arm/realview.c
+++ b/hw/arm/realview.c
@@ -276,7 +276,8 @@ static void realview_init(MachineState *machine,
 
     split_irq_from_named(OBJECT(machine), dev, "card-inserted",
                    qdev_get_gpio_in(sysctl, ARM_SYSCTL_GPIO_MMC_CARDIN),
-                   qemu_irq_invert_orphan(qdev_get_gpio_in(gpio2, 0)));
+                   qemu_irq_invert(OBJECT(machine), "mmc-cd-inv",
+                                   qdev_get_gpio_in(gpio2, 0)));
 
     dinfo = drive_get(IF_SD, 0, 0);
     if (dinfo) {
diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c
index a5d037094a..a0986dbfe8 100644
--- a/hw/arm/stellaris.c
+++ b/hw/arm/stellaris.c
@@ -1358,15 +1358,20 @@ static void stellaris_init(MachineState *ms, 
stellaris_board_info *board)
         sysbus_realize(SYS_BUS_DEVICE(gpad), &error_fatal);
 
         qdev_connect_gpio_out(gpad, 0,
-                              qemu_irq_invert_orphan(gpio_in[GPIO_E][0])); /* 
up */
+                              qemu_irq_invert(OBJECT(ms), "gpio-in-irq[*]",
+                                              gpio_in[GPIO_E][0])); /* up */
         qdev_connect_gpio_out(gpad, 1,
-                              qemu_irq_invert_orphan(gpio_in[GPIO_E][1])); /* 
down */
+                              qemu_irq_invert(OBJECT(ms), "gpio-in-irq[*]",
+                                              gpio_in[GPIO_E][1])); /* down */
         qdev_connect_gpio_out(gpad, 2,
-                              qemu_irq_invert_orphan(gpio_in[GPIO_E][2])); /* 
left */
+                              qemu_irq_invert(OBJECT(ms), "gpio-in-irq[*]",
+                                              gpio_in[GPIO_E][2])); /* left */
         qdev_connect_gpio_out(gpad, 3,
-                              qemu_irq_invert_orphan(gpio_in[GPIO_E][3])); /* 
right */
+                              qemu_irq_invert(OBJECT(ms), "gpio-in-irq[*]",
+                                              gpio_in[GPIO_E][3])); /* right */
         qdev_connect_gpio_out(gpad, 4,
-                              qemu_irq_invert_orphan(gpio_in[GPIO_F][1])); /* 
select */
+                              qemu_irq_invert(OBJECT(ms), "gpio-in-irq[*]",
+                                              gpio_in[GPIO_F][1])); /* select 
*/
     }
     for (i = 0; i < 7; i++) {
         if (board->dc4 & (1 << i)) {
diff --git a/hw/dma/omap_dma.c b/hw/dma/omap_dma.c
index 7a2a3310f9..7efb7a8b9a 100644
--- a/hw/dma/omap_dma.c
+++ b/hw/dma/omap_dma.c
@@ -1109,7 +1109,7 @@ struct soc_dma_s *omap_dma_init(Object *owner, hwaddr 
base, qemu_irq *irqs,
     s->dma->freq = omap_clk_getrate(clk);
     s->dma->transfer_fn = omap_dma_transfer_generic;
     s->dma->setup_fn = omap_dma_transfer_setup;
-    s->dma->drq = qemu_allocate_irqs_orphan(omap_dma_request, s, 32);
+    s->dma->drq = qemu_allocate_irqs(owner, "drq", omap_dma_request, s, 32);
     s->dma->opaque = s;
 
     while (num_irqs --)
@@ -1123,7 +1123,8 @@ struct soc_dma_s *omap_dma_init(Object *owner, hwaddr 
base, qemu_irq *irqs,
         s->dma->ch[i].opaque = &s->ch[i];
     }
 
-    omap_clk_adduser(s->clk, qemu_allocate_irq_orphan(omap_dma_clk_update, s, 
0));
+    omap_clk_adduser(s->clk, qemu_allocate_irq(owner, "clk-irq",
+                                               omap_dma_clk_update, s, 0));
     omap_dma_reset(s->dma);
     omap_dma_clk_update(s, 0, 1);
 
diff --git a/hw/timer/arm_timer.c b/hw/timer/arm_timer.c
index 1c29db12a2..42ccc99b1e 100644
--- a/hw/timer/arm_timer.c
+++ b/hw/timer/arm_timer.c
@@ -305,8 +305,10 @@ static void sp804_realize(DeviceState *dev, Error **errp)
 
     s->timer[0] = arm_timer_init(s->freq0);
     s->timer[1] = arm_timer_init(s->freq1);
-    s->timer[0]->irq = qemu_allocate_irq_orphan(sp804_set_irq, s, 0);
-    s->timer[1]->irq = qemu_allocate_irq_orphan(sp804_set_irq, s, 1);
+    s->timer[0]->irq = qemu_allocate_irq(OBJECT(dev), "timer-irq[*]",
+                                         sp804_set_irq, s, 0);
+    s->timer[1]->irq = qemu_allocate_irq(OBJECT(dev), "timer-irq[*]",
+                                         sp804_set_irq, s, 1);
 }
 
 /* Integrator/CP timer module.  */
diff --git a/include/hw/arm/omap.h b/include/hw/arm/omap.h
index 591abf752b..a4267ef30a 100644
--- a/include/hw/arm/omap.h
+++ b/include/hw/arm/omap.h
@@ -291,7 +291,7 @@ struct I2SCodec {
     } in, out;
 };
 struct omap_mcbsp_s;
-void omap_mcbsp_i2s_attach(struct omap_mcbsp_s *s, I2SCodec *slave);
+void omap_mcbsp_i2s_attach(Object *owner, struct omap_mcbsp_s *s, I2SCodec 
*slave);
 
 /* omap_lcdc.c */
 struct omap_lcd_panel_s;
-- 
2.47.1


Reply via email to