Skip to content

Commit

Permalink
leon3: use qdev gpio facilities for the PIL
Browse files Browse the repository at this point in the history
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 <marcandre.lureau@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
  • Loading branch information
elmarco committed Jan 7, 2020
1 parent ab4c072 commit e23ae61
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
6 changes: 4 additions & 2 deletions hw/sparc/leon3.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
1 change: 0 additions & 1 deletion target/sparc/cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down

0 comments on commit e23ae61

Please sign in to comment.