[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 3/6] hw/isa/vt82c686: Let ISA function expose ISA IRQs
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v2 3/6] hw/isa/vt82c686: Let ISA function expose ISA IRQs |
Date: |
Tue, 11 May 2021 06:18:45 +0200 |
The 2 cascaded 8259 PIC are managed by the PCI function #0
(ISA bridge). Expose the 16 IRQs on this function, so other
functions from the same chipset can access them.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/isa/vt82c686.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c
index 2ce5c6cbb00..388833f4eb1 100644
--- a/hw/isa/vt82c686.c
+++ b/hw/isa/vt82c686.c
@@ -542,6 +542,7 @@ OBJECT_DECLARE_SIMPLE_TYPE(ViaISAState, VIA_ISA)
struct ViaISAState {
PCIDevice dev;
qemu_irq cpu_intr;
+ qemu_irq *pic_irq;
ViaSuperIOState *via_sio;
};
@@ -601,6 +602,13 @@ static void vt82c686b_isa_reset(DeviceState *dev)
pci_conf[0x77] = 0x10; /* GPIO Control 1/2/3/4 */
}
+static void vt82c686b_isa_irq(void *opaque, int irq, int level)
+{
+ ViaISAState *s = opaque;
+
+ qemu_set_irq(s->pic_irq[irq], level);
+}
+
static void vt82c686b_realize(PCIDevice *d, Error **errp)
{
ViaISAState *s = VIA_ISA(d);
@@ -611,7 +619,10 @@ static void vt82c686b_realize(PCIDevice *d, Error **errp)
qdev_init_gpio_out_named(dev, &s->cpu_intr, "intr", 1);
isa_bus = isa_bus_new(dev, get_system_memory(), pci_address_space_io(d),
&error_fatal);
- isa_bus_irqs(isa_bus, i8259_init(isa_bus, s->cpu_intr));
+ s->pic_irq = i8259_init(isa_bus, s->cpu_intr);
+ isa_bus_irqs(isa_bus, s->pic_irq);
+ qdev_init_gpio_in_named(dev, vt82c686b_isa_irq, "isa-irq", ISA_NUM_IRQS);
+
i8254_pit_init(isa_bus, 0x40, 0, NULL);
i8257_dma_init(isa_bus, 0);
s->via_sio = VIA_SUPERIO(isa_create_simple(isa_bus,
--
2.26.3
- [PATCH v2 0/6] hw/southbridge: QOM'ify vt82c686 as VT82C686B_SOUTHBRIDGE, Philippe Mathieu-Daudé, 2021/05/11
- [PATCH v2 1/6] hw/isa/vt82c686: Name output IRQ as 'intr', Philippe Mathieu-Daudé, 2021/05/11
- [PATCH v2 2/6] hw/isa/vt82c686: Simplify removing unuseful qemu_allocate_irqs() call, Philippe Mathieu-Daudé, 2021/05/11
- [PATCH v2 3/6] hw/isa/vt82c686: Let ISA function expose ISA IRQs,
Philippe Mathieu-Daudé <=
- [PATCH v2 4/6] hw/ide/via: Replace magic 2 value by ARRAY_SIZE / MAX_IDE_DEVS, Philippe Mathieu-Daudé, 2021/05/11
- [PATCH v2 5/6] hw/ide/via: Connect IDE function output IRQs to the ISA function input, Philippe Mathieu-Daudé, 2021/05/11
- [PATCH v2 6/6] hw/southbridge/vt82c686: Introduce VT82C686B_SOUTHBRIDGE, Philippe Mathieu-Daudé, 2021/05/11
- Re: [PATCH v2 0/6] hw/southbridge: QOM'ify vt82c686 as VT82C686B_SOUTHBRIDGE, BALATON Zoltan, 2021/05/11