[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 17/50] dino: wire up serial IRQ using a qdev GPIO in machine.c
From: |
Mark Cave-Ayland |
Subject: |
[PATCH 17/50] dino: wire up serial IRQ using a qdev GPIO in machine.c |
Date: |
Thu, 21 Apr 2022 20:30:27 +0100 |
This makes it unnecessary to allocate a separate IRQ for the serial port.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
hw/hppa/dino.c | 8 +-------
hw/hppa/hppa_sys.h | 2 +-
hw/hppa/machine.c | 7 ++++---
3 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/hw/hppa/dino.c b/hw/hppa/dino.c
index f58aebf94d..80ffe27188 100644
--- a/hw/hppa/dino.c
+++ b/hw/hppa/dino.c
@@ -404,13 +404,8 @@ static void dino_set_timer_irq(void *opaque, int irq, int
level)
/* ??? Not connected. */
}
-static void dino_set_serial_irq(void *opaque, int irq, int level)
-{
- dino_set_irq(opaque, 10, level);
-}
-
DinoState *dino_init(MemoryRegion *addr_space,
- qemu_irq *p_rtc_irq, qemu_irq *p_ser_irq)
+ qemu_irq *p_rtc_irq)
{
DeviceState *dev;
DinoState *s;
@@ -422,7 +417,6 @@ DinoState *dino_init(MemoryRegion *addr_space,
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
*p_rtc_irq = qemu_allocate_irq(dino_set_timer_irq, s, 0);
- *p_ser_irq = qemu_allocate_irq(dino_set_serial_irq, s, 0);
return s;
}
diff --git a/hw/hppa/hppa_sys.h b/hw/hppa/hppa_sys.h
index 88773d2c35..c238e7ebc8 100644
--- a/hw/hppa/hppa_sys.h
+++ b/hw/hppa/hppa_sys.h
@@ -11,7 +11,7 @@
#include "hppa_hardware.h"
#include "dino.h"
-DinoState *dino_init(MemoryRegion *, qemu_irq *, qemu_irq *);
+DinoState *dino_init(MemoryRegion *, qemu_irq *);
DeviceState *lasi_init(MemoryRegion *);
#define enable_lasi_lan() 0
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index e16305d195..df7a47d07d 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -130,7 +130,7 @@ static void machine_hppa_init(MachineState *machine)
DeviceState *dev, *dino_dev;
PCIBus *pci_bus;
ISABus *isa_bus;
- qemu_irq rtc_irq, serial_irq;
+ qemu_irq rtc_irq;
char *firmware_filename;
uint64_t firmware_low, firmware_high;
long size;
@@ -167,7 +167,7 @@ static void machine_hppa_init(MachineState *machine)
lasi_init(addr_space);
/* Init Dino (PCI host bus chip). */
- dino_dev = DEVICE(dino_init(addr_space, &rtc_irq, &serial_irq));
+ dino_dev = DEVICE(dino_init(addr_space, &rtc_irq));
memory_region_add_subregion(addr_space, DINO_HPA,
sysbus_mmio_get_region(
SYS_BUS_DEVICE(dino_dev), 0));
@@ -184,7 +184,8 @@ static void machine_hppa_init(MachineState *machine)
/* Serial code setup. */
if (serial_hd(0)) {
uint32_t addr = DINO_UART_HPA + 0x800;
- serial_mm_init(addr_space, addr, 0, serial_irq,
+ serial_mm_init(addr_space, addr, 0,
+ qdev_get_gpio_in(dino_dev, DINO_IRQ_RS232INT),
115200, serial_hd(0), DEVICE_BIG_ENDIAN);
}
--
2.20.1
- [PATCH 09/50] dino: use QOM cast instead of directly referencing parent_obj, (continued)
- [PATCH 09/50] dino: use QOM cast instead of directly referencing parent_obj, Mark Cave-Ayland, 2022/04/21
- [PATCH 10/50] dino: return PCIBus from dino_init() using qdev_get_child_bus(), Mark Cave-Ayland, 2022/04/21
- [PATCH 08/50] dino: move initial register configuration to new dino_pcihost_reset() function, Mark Cave-Ayland, 2022/04/21
- [PATCH 06/50] dino: move pci_setup_iommu() to dino_pcihost_init(), Mark Cave-Ayland, 2022/04/21
- [PATCH 05/50] dino: add memory-as property containing a link to the memory address space, Mark Cave-Ayland, 2022/04/21
- [PATCH 11/50] dino: split declarations from dino.c into dino.h, Mark Cave-Ayland, 2022/04/21
- [PATCH 18/50] dino: remove unused dino_set_timer_irq() IRQ handler, Mark Cave-Ayland, 2022/04/21
- [PATCH 13/50] dino: change dino_init() to return the DINO device instead of PCIBus, Mark Cave-Ayland, 2022/04/21
- [PATCH 12/50] hppa: use new CONFIG_HPPA_GENERIC option instead of CONFIG_DINO to build hppa machine, Mark Cave-Ayland, 2022/04/21
- [PATCH 15/50] dino.h: add defines for DINO IRQ numbers, Mark Cave-Ayland, 2022/04/21
- [PATCH 17/50] dino: wire up serial IRQ using a qdev GPIO in machine.c,
Mark Cave-Ayland <=
- [PATCH 20/50] dino: use numerical constant for iar0 and iar1 reset values, Mark Cave-Ayland, 2022/04/21
- [PATCH 16/50] dino: define IRQ inputs as qdev GPIOs, Mark Cave-Ayland, 2022/04/21
- [PATCH 19/50] hppa: move dino_init() from dino.c to machine.c, Mark Cave-Ayland, 2022/04/21
- [PATCH 14/50] machine.c: map DINO device during board configuration, Mark Cave-Ayland, 2022/04/21
- [PATCH 21/50] dino: move DINO HPA constants from hppa_hardware.h to dino.h, Mark Cave-Ayland, 2022/04/21
- [PATCH 24/50] lasi: move memory region initialisation to new lasi_init() function, Mark Cave-Ayland, 2022/04/21
- [PATCH 26/50] lasi: move initialisation of iar and rtc to new lasi_reset() function, Mark Cave-Ayland, 2022/04/21
- [PATCH 27/50] lasi: move LASIState and associated QOM structures to lasi.h, Mark Cave-Ayland, 2022/04/21
- [PATCH 23/50] lasi: checkpatch fixes, Mark Cave-Ayland, 2022/04/21
- [PATCH 22/50] dino: move from hw/hppa to hw/pci-host, Mark Cave-Ayland, 2022/04/21