{
uint32_t grp, bit, irq_id, n;
Exynos4210Irq *is = &s->irqs;
+ DeviceState *extgicdev = DEVICE(&s->ext_gic);
for (n = 0; n < EXYNOS4210_MAX_EXT_COMBINER_IN_IRQ; n++) {
irq_id = 0;
}
if (irq_id) {
s->irq_table[n] = qemu_irq_split(is->int_combiner_irq[n],
- is->ext_gic_irq[irq_id - 32]);
+ qdev_get_gpio_in(extgicdev,
+ irq_id - 32));
} else {
s->irq_table[n] = qemu_irq_split(is->int_combiner_irq[n],
is->ext_combiner_irq[n]);
if (irq_id) {
s->irq_table[n] = qemu_irq_split(is->int_combiner_irq[n],
- is->ext_gic_irq[irq_id - 32]);
+ qdev_get_gpio_in(extgicdev,
+ irq_id - 32));
}
}
}
sysbus_connect_irq(busdev, n,
qdev_get_gpio_in(DEVICE(&s->cpu_irq_orgate[n]), 1));
}
- for (n = 0; n < EXYNOS4210_EXT_GIC_NIRQ; n++) {
- s->irqs.ext_gic_irq[n] = qdev_get_gpio_in(DEVICE(&s->ext_gic), n);
- }
/* Internal Interrupt Combiner */
dev = qdev_new("exynos4210.combiner");
busdev = SYS_BUS_DEVICE(dev);
sysbus_realize_and_unref(busdev, &error_fatal);
for (n = 0; n < EXYNOS4210_MAX_INT_COMBINER_OUT_IRQ; n++) {
- sysbus_connect_irq(busdev, n, s->irqs.ext_gic_irq[n]);
+ sysbus_connect_irq(busdev, n, qdev_get_gpio_in(DEVICE(&s->ext_gic), n));
}
exynos4210_combiner_get_gpioin(&s->irqs, dev, 1);
sysbus_mmio_map(busdev, 0, EXYNOS4210_EXT_COMBINER_BASE_ADDR);