[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 27/37] leon3: use qdev gpio facilities for the PIL
From: |
Marc-André Lureau |
Subject: |
[PATCH v5 27/37] leon3: use qdev gpio facilities for the PIL |
Date: |
Fri, 20 Dec 2019 17:45:51 +0400 |
As Peter Maydell once said:
"Creating a gpio pin on some object that isn't yourself
looks a bit odd, but all this leon3 code is modifying
the CPU object from the outside anyway. Someday we might
tidy it up, but not today."
Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
---
hw/sparc/leon3.c | 6 ++++--
target/sparc/cpu.h | 1 -
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index cac987373e..8038887ff7 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -230,8 +230,10 @@ static void leon3_generic_hw_init(MachineState *machine)
/* Allocate IRQ manager */
dev = qdev_create(NULL, TYPE_GRLIB_IRQMP);
- env->pil_irq = qemu_allocate_irq(leon3_set_pil_in, env, 0);
- qdev_connect_gpio_out_named(dev, "grlib-irq", 0, env->pil_irq);
+ qdev_init_gpio_in_named_with_opaque(DEVICE(cpu), leon3_set_pil_in,
+ env, "pil", 1);
+ qdev_connect_gpio_out_named(dev, "grlib-irq", 0,
+ qdev_get_gpio_in_named(DEVICE(cpu), "pil", 0));
qdev_init_nofail(dev);
sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, LEON3_IRQMP_OFFSET);
env->irq_manager = dev;
diff --git a/target/sparc/cpu.h b/target/sparc/cpu.h
index e70fec0133..ae97c7d9f7 100644
--- a/target/sparc/cpu.h
+++ b/target/sparc/cpu.h
@@ -541,7 +541,6 @@ struct CPUSPARCState {
#endif
sparc_def_t def;
- qemu_irq pil_irq;
void *irq_manager;
void (*qemu_irq_ack)(CPUSPARCState *env, void *irq_manager, int intno);
--
2.24.0.308.g228f53135a
- [PATCH v5 13/37] serial-mm: add "regshift" property, (continued)
- [PATCH v5 13/37] serial-mm: add "regshift" property, Marc-André Lureau, 2019/12/20
- [PATCH v5 18/37] mips: baudbase is 115200 by default, Marc-André Lureau, 2019/12/20
- [PATCH v5 19/37] mips: use sysbus_add_io(), Marc-André Lureau, 2019/12/20
- [PATCH v5 20/37] mips: use sysbus_mmio_get_region() instead of internal fields, Marc-André Lureau, 2019/12/20
- [PATCH v5 21/37] sm501: make SerialMM a child, export chardev property, Marc-André Lureau, 2019/12/20
- [PATCH v5 22/37] vmmouse: replace PROP_PTR with PROP_LINK, Marc-André Lureau, 2019/12/20
- [PATCH v5 23/37] lance: replace PROP_PTR with PROP_LINK, Marc-André Lureau, 2019/12/20
- [PATCH v5 24/37] etraxfs: remove PROP_PTR usage, Marc-André Lureau, 2019/12/20
- [PATCH v5 25/37] dp8393x: replace PROP_PTR with PROP_LINK, Marc-André Lureau, 2019/12/20
- [PATCH v5 26/37] leon3: use qemu_irq framework instead of callback as property, Marc-André Lureau, 2019/12/20
- [PATCH v5 27/37] leon3: use qdev gpio facilities for the PIL,
Marc-André Lureau <=
- [PATCH v5 28/37] qdev: use g_strcmp0() instead of open-coding it, Marc-André Lureau, 2019/12/20
- [PATCH v5 29/37] mips/cps: fix setting saar property, Marc-André Lureau, 2019/12/20
- [PATCH v5 30/37] cris: improve passing PIC interrupt vector to the CPU, Marc-André Lureau, 2019/12/20
- [PATCH v5 31/37] smbus-eeprom: remove PROP_PTR, Marc-André Lureau, 2019/12/20
- [PATCH v5 32/37] omap-intc: remove PROP_PTR, Marc-André Lureau, 2019/12/20
- [PATCH v5 33/37] omap-i2c: remove PROP_PTR, Marc-André Lureau, 2019/12/20
- [PATCH v5 34/37] omap-gpio: remove PROP_PTR, Marc-André Lureau, 2019/12/20
- [PATCH v5 35/37] qdev: remove PROP_MEMORY_REGION, Marc-André Lureau, 2019/12/20
- [PATCH v5 36/37] qdev: remove QDEV_PROP_PTR, Marc-André Lureau, 2019/12/20
- [PATCH v5 37/37] qdev/qom: remove some TODO limitations now that PROP_PTR is gone, Marc-André Lureau, 2019/12/20