diff mbox series

[03/11] hw/isa/i82378: Remove intermediate IRQ forwarder

Message ID 20230210163744.32182-4-philmd@linaro.org
State Superseded
Headers show
Series hw/isa: More housekeeping | expand

Commit Message

Philippe Mathieu-Daudé Feb. 10, 2023, 4:37 p.m. UTC
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

When the i82378 model was added in commit a04ff940974 ("prep:
Add i82378 PCI-to-ISA bridge emulation") the i8259 model was
not yet QOM'ified. This happened later in commit 747c70af78f
("i8259: Convert to qdev").

Directly dispatch ISA IRQs to 'cpu_intr' output IRQ
by removing the intermediate i82378_request_out0_irq()
handler. Rename ISA IRQs array as 'isa_irqs_in' to
emphasize these are input IRQs.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/isa/i82378.c | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

Comments

Richard Henderson Feb. 11, 2023, 5:13 p.m. UTC | #1
On 2/10/23 06:37, Philippe Mathieu-Daudé wrote:
> From: Philippe Mathieu-Daudé<f4bug@amsat.org>
> 
> When the i82378 model was added in commit a04ff940974 ("prep:
> Add i82378 PCI-to-ISA bridge emulation") the i8259 model was
> not yet QOM'ified. This happened later in commit 747c70af78f
> ("i8259: Convert to qdev").
> 
> Directly dispatch ISA IRQs to 'cpu_intr' output IRQ
> by removing the intermediate i82378_request_out0_irq()
> handler. Rename ISA IRQs array as 'isa_irqs_in' to
> emphasize these are input IRQs.
> 
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> Signed-off-by: Philippe Mathieu-Daudé<philmd@linaro.org>
> ---
>   hw/isa/i82378.c | 15 ++++-----------
>   1 file changed, 4 insertions(+), 11 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~
diff mbox series

Patch

diff --git a/hw/isa/i82378.c b/hw/isa/i82378.c
index 84ce761f5f..d32653369d 100644
--- a/hw/isa/i82378.c
+++ b/hw/isa/i82378.c
@@ -33,7 +33,7 @@  struct I82378State {
     PCIDevice parent_obj;
 
     qemu_irq cpu_intr;
-    qemu_irq *i8259;
+    qemu_irq *isa_irqs_in;
     MemoryRegion io;
 };
 
@@ -47,18 +47,12 @@  static const VMStateDescription vmstate_i82378 = {
     },
 };
 
-static void i82378_request_out0_irq(void *opaque, int irq, int level)
-{
-    I82378State *s = opaque;
-    qemu_set_irq(s->cpu_intr, level);
-}
-
 static void i82378_request_pic_irq(void *opaque, int irq, int level)
 {
     DeviceState *dev = opaque;
     I82378State *s = I82378(dev);
 
-    qemu_set_irq(s->i8259[irq], level);
+    qemu_set_irq(s->isa_irqs_in[irq], level);
 }
 
 static void i82378_realize(PCIDevice *pci, Error **errp)
@@ -94,9 +88,8 @@  static void i82378_realize(PCIDevice *pci, Error **errp)
      */
 
     /* 2 82C59 (irq) */
-    s->i8259 = i8259_init(isabus,
-                          qemu_allocate_irq(i82378_request_out0_irq, s, 0));
-    isa_bus_irqs(isabus, s->i8259);
+    s->isa_irqs_in = i8259_init(isabus, s->cpu_intr);
+    isa_bus_irqs(isabus, s->isa_irqs_in);
 
     /* 1 82C54 (pit) */
     pit = i8254_pit_init(isabus, 0x40, 0, NULL);