Commit 067a3ddc8876cee8451d6f690a051e413a593fdc
1 parent
c2fb2637
Remove qdev irq sink handling
We have both IRQ sinks and GPIO inputs. These are in principle exactly the same thing, so remove the former. Signed-off-by: Paul Brook <paul@codesourcery.com>
Showing
18 changed files
with
27 additions
and
43 deletions
hw/arm_gic.c
@@ -721,7 +721,7 @@ static void gic_init(gic_state *s) | @@ -721,7 +721,7 @@ static void gic_init(gic_state *s) | ||
721 | { | 721 | { |
722 | int i; | 722 | int i; |
723 | 723 | ||
724 | - qdev_init_irq_sink(&s->busdev.qdev, gic_set_irq, GIC_NIRQ - 32); | 724 | + qdev_init_gpio_in(&s->busdev.qdev, gic_set_irq, GIC_NIRQ - 32); |
725 | for (i = 0; i < NCPU; i++) { | 725 | for (i = 0; i < NCPU; i++) { |
726 | sysbus_init_irq(&s->busdev, &s->parent_irq[i]); | 726 | sysbus_init_irq(&s->busdev, &s->parent_irq[i]); |
727 | } | 727 | } |
hw/armv7m.c
@@ -186,7 +186,7 @@ qemu_irq *armv7m_init(int flash_size, int sram_size, | @@ -186,7 +186,7 @@ qemu_irq *armv7m_init(int flash_size, int sram_size, | ||
186 | cpu_pic = arm_pic_init_cpu(env); | 186 | cpu_pic = arm_pic_init_cpu(env); |
187 | sysbus_connect_irq(sysbus_from_qdev(nvic), 0, cpu_pic[ARM_PIC_CPU_IRQ]); | 187 | sysbus_connect_irq(sysbus_from_qdev(nvic), 0, cpu_pic[ARM_PIC_CPU_IRQ]); |
188 | for (i = 0; i < 64; i++) { | 188 | for (i = 0; i < 64; i++) { |
189 | - pic[i] = qdev_get_irq_sink(nvic, i); | 189 | + pic[i] = qdev_get_gpio_in(nvic, i); |
190 | } | 190 | } |
191 | 191 | ||
192 | image_size = load_elf(kernel_filename, 0, &entry, &lowaddr, NULL); | 192 | image_size = load_elf(kernel_filename, 0, &entry, &lowaddr, NULL); |
hw/axis_dev88.c
@@ -304,10 +304,10 @@ void axisdev88_init (ram_addr_t ram_size, | @@ -304,10 +304,10 @@ void axisdev88_init (ram_addr_t ram_size, | ||
304 | sysbus_connect_irq(s, 0, cpu_irq[0]); | 304 | sysbus_connect_irq(s, 0, cpu_irq[0]); |
305 | sysbus_connect_irq(s, 1, cpu_irq[1]); | 305 | sysbus_connect_irq(s, 1, cpu_irq[1]); |
306 | for (i = 0; i < 30; i++) { | 306 | for (i = 0; i < 30; i++) { |
307 | - irq[i] = qdev_get_irq_sink(dev, i); | 307 | + irq[i] = qdev_get_gpio_in(dev, i); |
308 | } | 308 | } |
309 | - nmi[0] = qdev_get_irq_sink(dev, 30); | ||
310 | - nmi[1] = qdev_get_irq_sink(dev, 31); | 309 | + nmi[0] = qdev_get_gpio_in(dev, 30); |
310 | + nmi[1] = qdev_get_gpio_in(dev, 31); | ||
311 | 311 | ||
312 | etraxfs_dmac = etraxfs_dmac_init(env, 0x30000000, 10); | 312 | etraxfs_dmac = etraxfs_dmac_init(env, 0x30000000, 10); |
313 | for (i = 0; i < 10; i++) { | 313 | for (i = 0; i < 10; i++) { |
hw/esp.c
@@ -684,7 +684,7 @@ static void esp_init1(SysBusDevice *dev) | @@ -684,7 +684,7 @@ static void esp_init1(SysBusDevice *dev) | ||
684 | register_savevm("esp", -1, 3, esp_save, esp_load, s); | 684 | register_savevm("esp", -1, 3, esp_save, esp_load, s); |
685 | qemu_register_reset(esp_reset, 0, s); | 685 | qemu_register_reset(esp_reset, 0, s); |
686 | 686 | ||
687 | - qdev_init_irq_sink(&dev->qdev, parent_esp_reset, 1); | 687 | + qdev_init_gpio_in(&dev->qdev, parent_esp_reset, 1); |
688 | 688 | ||
689 | scsi_bus_new(&dev->qdev, esp_scsi_attach); | 689 | scsi_bus_new(&dev->qdev, esp_scsi_attach); |
690 | } | 690 | } |
hw/etraxfs.c
@@ -90,10 +90,10 @@ void bareetraxfs_init (ram_addr_t ram_size, | @@ -90,10 +90,10 @@ void bareetraxfs_init (ram_addr_t ram_size, | ||
90 | /* FIXME: Is there a proper way to signal vectors to the CPU core? */ | 90 | /* FIXME: Is there a proper way to signal vectors to the CPU core? */ |
91 | qdev_set_prop_ptr(dev, "interrupt_vector", &env->interrupt_vector); | 91 | qdev_set_prop_ptr(dev, "interrupt_vector", &env->interrupt_vector); |
92 | for (i = 0; i < 30; i++) { | 92 | for (i = 0; i < 30; i++) { |
93 | - irq[i] = qdev_get_irq_sink(dev, i); | 93 | + irq[i] = qdev_get_gpio_in(dev, i); |
94 | } | 94 | } |
95 | - nmi[0] = qdev_get_irq_sink(dev, 30); | ||
96 | - nmi[1] = qdev_get_irq_sink(dev, 31); | 95 | + nmi[0] = qdev_get_gpio_in(dev, 30); |
96 | + nmi[1] = qdev_get_gpio_in(dev, 31); | ||
97 | 97 | ||
98 | etraxfs_dmac = etraxfs_dmac_init(env, 0x30000000, 10); | 98 | etraxfs_dmac = etraxfs_dmac_init(env, 0x30000000, 10); |
99 | for (i = 0; i < 10; i++) { | 99 | for (i = 0; i < 10; i++) { |
hw/etraxfs_pic.c
@@ -141,7 +141,7 @@ static void etraxfs_pic_init(SysBusDevice *dev) | @@ -141,7 +141,7 @@ static void etraxfs_pic_init(SysBusDevice *dev) | ||
141 | int intr_vect_regs; | 141 | int intr_vect_regs; |
142 | 142 | ||
143 | s->interrupt_vector = qdev_get_prop_ptr(&dev->qdev, "interrupt_vector"); | 143 | s->interrupt_vector = qdev_get_prop_ptr(&dev->qdev, "interrupt_vector"); |
144 | - qdev_init_irq_sink(&dev->qdev, irq_handler, 32); | 144 | + qdev_init_gpio_in(&dev->qdev, irq_handler, 32); |
145 | sysbus_init_irq(dev, &s->parent_irq); | 145 | sysbus_init_irq(dev, &s->parent_irq); |
146 | sysbus_init_irq(dev, &s->parent_nmi); | 146 | sysbus_init_irq(dev, &s->parent_nmi); |
147 | 147 |
hw/integratorcp.c
@@ -378,7 +378,7 @@ static void icp_pic_init(SysBusDevice *dev) | @@ -378,7 +378,7 @@ static void icp_pic_init(SysBusDevice *dev) | ||
378 | icp_pic_state *s = FROM_SYSBUS(icp_pic_state, dev); | 378 | icp_pic_state *s = FROM_SYSBUS(icp_pic_state, dev); |
379 | int iomemtype; | 379 | int iomemtype; |
380 | 380 | ||
381 | - qdev_init_irq_sink(&dev->qdev, icp_pic_set_irq, 32); | 381 | + qdev_init_gpio_in(&dev->qdev, icp_pic_set_irq, 32); |
382 | sysbus_init_irq(dev, &s->parent_irq); | 382 | sysbus_init_irq(dev, &s->parent_irq); |
383 | sysbus_init_irq(dev, &s->parent_fiq); | 383 | sysbus_init_irq(dev, &s->parent_fiq); |
384 | iomemtype = cpu_register_io_memory(0, icp_pic_readfn, | 384 | iomemtype = cpu_register_io_memory(0, icp_pic_readfn, |
@@ -484,7 +484,7 @@ static void integratorcp_init(ram_addr_t ram_size, | @@ -484,7 +484,7 @@ static void integratorcp_init(ram_addr_t ram_size, | ||
484 | cpu_pic[ARM_PIC_CPU_IRQ], | 484 | cpu_pic[ARM_PIC_CPU_IRQ], |
485 | cpu_pic[ARM_PIC_CPU_FIQ], NULL); | 485 | cpu_pic[ARM_PIC_CPU_FIQ], NULL); |
486 | for (i = 0; i < 32; i++) { | 486 | for (i = 0; i < 32; i++) { |
487 | - pic[i] = qdev_get_irq_sink(dev, i); | 487 | + pic[i] = qdev_get_gpio_in(dev, i); |
488 | } | 488 | } |
489 | sysbus_create_simple("integrator_pic", 0xca000000, pic[26]); | 489 | sysbus_create_simple("integrator_pic", 0xca000000, pic[26]); |
490 | sysbus_create_varargs("integrator_pit", 0x13000000, | 490 | sysbus_create_varargs("integrator_pit", 0x13000000, |
hw/mpcore.c
@@ -320,17 +320,17 @@ static void realview_mpcore_init(SysBusDevice *dev) | @@ -320,17 +320,17 @@ static void realview_mpcore_init(SysBusDevice *dev) | ||
320 | priv = sysbus_create_simple("arm11mpcore_priv", MPCORE_PRIV_BASE, NULL); | 320 | priv = sysbus_create_simple("arm11mpcore_priv", MPCORE_PRIV_BASE, NULL); |
321 | sysbus_pass_irq(dev, sysbus_from_qdev(priv)); | 321 | sysbus_pass_irq(dev, sysbus_from_qdev(priv)); |
322 | for (i = 0; i < 32; i++) { | 322 | for (i = 0; i < 32; i++) { |
323 | - s->cpuic[i] = qdev_get_irq_sink(priv, i); | 323 | + s->cpuic[i] = qdev_get_gpio_in(priv, i); |
324 | } | 324 | } |
325 | /* ??? IRQ routing is hardcoded to "normal" mode. */ | 325 | /* ??? IRQ routing is hardcoded to "normal" mode. */ |
326 | for (n = 0; n < 4; n++) { | 326 | for (n = 0; n < 4; n++) { |
327 | gic = sysbus_create_simple("realview_gic", 0x10040000 + n * 0x10000, | 327 | gic = sysbus_create_simple("realview_gic", 0x10040000 + n * 0x10000, |
328 | s->cpuic[10 + n]); | 328 | s->cpuic[10 + n]); |
329 | for (i = 0; i < 64; i++) { | 329 | for (i = 0; i < 64; i++) { |
330 | - s->rvic[n][i] = qdev_get_irq_sink(gic, i); | 330 | + s->rvic[n][i] = qdev_get_gpio_in(gic, i); |
331 | } | 331 | } |
332 | } | 332 | } |
333 | - qdev_init_irq_sink(&dev->qdev, mpcore_rirq_set_irq, 64); | 333 | + qdev_init_gpio_in(&dev->qdev, mpcore_rirq_set_irq, 64); |
334 | } | 334 | } |
335 | 335 | ||
336 | static void mpcore_register_devices(void) | 336 | static void mpcore_register_devices(void) |
hw/musicpal.c
@@ -1040,7 +1040,7 @@ static void mv88w8618_pic_init(SysBusDevice *dev) | @@ -1040,7 +1040,7 @@ static void mv88w8618_pic_init(SysBusDevice *dev) | ||
1040 | mv88w8618_pic_state *s = FROM_SYSBUS(mv88w8618_pic_state, dev); | 1040 | mv88w8618_pic_state *s = FROM_SYSBUS(mv88w8618_pic_state, dev); |
1041 | int iomemtype; | 1041 | int iomemtype; |
1042 | 1042 | ||
1043 | - qdev_init_irq_sink(&dev->qdev, mv88w8618_pic_set_irq, 32); | 1043 | + qdev_init_gpio_in(&dev->qdev, mv88w8618_pic_set_irq, 32); |
1044 | sysbus_init_irq(dev, &s->parent_irq); | 1044 | sysbus_init_irq(dev, &s->parent_irq); |
1045 | iomemtype = cpu_register_io_memory(0, mv88w8618_pic_readfn, | 1045 | iomemtype = cpu_register_io_memory(0, mv88w8618_pic_readfn, |
1046 | mv88w8618_pic_writefn, s); | 1046 | mv88w8618_pic_writefn, s); |
@@ -1534,7 +1534,7 @@ static void musicpal_init(ram_addr_t ram_size, | @@ -1534,7 +1534,7 @@ static void musicpal_init(ram_addr_t ram_size, | ||
1534 | dev = sysbus_create_simple("mv88w8618_pic", MP_PIC_BASE, | 1534 | dev = sysbus_create_simple("mv88w8618_pic", MP_PIC_BASE, |
1535 | cpu_pic[ARM_PIC_CPU_IRQ]); | 1535 | cpu_pic[ARM_PIC_CPU_IRQ]); |
1536 | for (i = 0; i < 32; i++) { | 1536 | for (i = 0; i < 32; i++) { |
1537 | - pic[i] = qdev_get_irq_sink(dev, i); | 1537 | + pic[i] = qdev_get_gpio_in(dev, i); |
1538 | } | 1538 | } |
1539 | sysbus_create_varargs("mv88w8618_pit", MP_PIT_BASE, pic[MP_TIMER1_IRQ], | 1539 | sysbus_create_varargs("mv88w8618_pit", MP_PIT_BASE, pic[MP_TIMER1_IRQ], |
1540 | pic[MP_TIMER2_IRQ], pic[MP_TIMER3_IRQ], | 1540 | pic[MP_TIMER2_IRQ], pic[MP_TIMER3_IRQ], |
hw/pcnet.c
@@ -2127,7 +2127,7 @@ static void lance_init(SysBusDevice *dev) | @@ -2127,7 +2127,7 @@ static void lance_init(SysBusDevice *dev) | ||
2127 | 2127 | ||
2128 | s->dma_opaque = qdev_get_prop_ptr(&dev->qdev, "dma"); | 2128 | s->dma_opaque = qdev_get_prop_ptr(&dev->qdev, "dma"); |
2129 | 2129 | ||
2130 | - qdev_init_irq_sink(&dev->qdev, parent_lance_reset, 1); | 2130 | + qdev_init_gpio_in(&dev->qdev, parent_lance_reset, 1); |
2131 | 2131 | ||
2132 | sysbus_init_mmio(dev, 4, s->mmio_index); | 2132 | sysbus_init_mmio(dev, 4, s->mmio_index); |
2133 | 2133 |
hw/pl190.c
@@ -235,7 +235,7 @@ static void pl190_init(SysBusDevice *dev) | @@ -235,7 +235,7 @@ static void pl190_init(SysBusDevice *dev) | ||
235 | iomemtype = cpu_register_io_memory(0, pl190_readfn, | 235 | iomemtype = cpu_register_io_memory(0, pl190_readfn, |
236 | pl190_writefn, s); | 236 | pl190_writefn, s); |
237 | sysbus_init_mmio(dev, 0x1000, iomemtype); | 237 | sysbus_init_mmio(dev, 0x1000, iomemtype); |
238 | - qdev_init_irq_sink(&dev->qdev, pl190_set_irq, 32); | 238 | + qdev_init_gpio_in(&dev->qdev, pl190_set_irq, 32); |
239 | sysbus_init_irq(dev, &s->irq); | 239 | sysbus_init_irq(dev, &s->irq); |
240 | sysbus_init_irq(dev, &s->fiq); | 240 | sysbus_init_irq(dev, &s->fiq); |
241 | pl190_reset(s); | 241 | pl190_reset(s); |
hw/qdev.c
@@ -156,19 +156,6 @@ void qdev_set_netdev(DeviceState *dev, NICInfo *nd) | @@ -156,19 +156,6 @@ void qdev_set_netdev(DeviceState *dev, NICInfo *nd) | ||
156 | } | 156 | } |
157 | 157 | ||
158 | 158 | ||
159 | -qemu_irq qdev_get_irq_sink(DeviceState *dev, int n) | ||
160 | -{ | ||
161 | - assert(n >= 0 && n < dev->num_irq_sink); | ||
162 | - return dev->irq_sink[n]; | ||
163 | -} | ||
164 | - | ||
165 | -/* Register device IRQ sinks. */ | ||
166 | -void qdev_init_irq_sink(DeviceState *dev, qemu_irq_handler handler, int nirq) | ||
167 | -{ | ||
168 | - dev->num_irq_sink = nirq; | ||
169 | - dev->irq_sink = qemu_allocate_irqs(handler, dev, nirq); | ||
170 | -} | ||
171 | - | ||
172 | /* Get a character (serial) device interface. */ | 159 | /* Get a character (serial) device interface. */ |
173 | CharDriverState *qdev_init_chardev(DeviceState *dev) | 160 | CharDriverState *qdev_init_chardev(DeviceState *dev) |
174 | { | 161 | { |
hw/qdev.h
@@ -17,8 +17,6 @@ struct DeviceState { | @@ -17,8 +17,6 @@ struct DeviceState { | ||
17 | DeviceType *type; | 17 | DeviceType *type; |
18 | BusState *parent_bus; | 18 | BusState *parent_bus; |
19 | DeviceProperty *props; | 19 | DeviceProperty *props; |
20 | - int num_irq_sink; | ||
21 | - qemu_irq *irq_sink; | ||
22 | int num_gpio_out; | 20 | int num_gpio_out; |
23 | qemu_irq *gpio_out; | 21 | qemu_irq *gpio_out; |
24 | int num_gpio_in; | 22 | int num_gpio_in; |
@@ -55,7 +53,6 @@ void qdev_set_prop_int(DeviceState *dev, const char *name, uint64_t value); | @@ -55,7 +53,6 @@ void qdev_set_prop_int(DeviceState *dev, const char *name, uint64_t value); | ||
55 | void qdev_set_prop_ptr(DeviceState *dev, const char *name, void *value); | 53 | void qdev_set_prop_ptr(DeviceState *dev, const char *name, void *value); |
56 | void qdev_set_netdev(DeviceState *dev, NICInfo *nd); | 54 | void qdev_set_netdev(DeviceState *dev, NICInfo *nd); |
57 | 55 | ||
58 | -qemu_irq qdev_get_irq_sink(DeviceState *dev, int n); | ||
59 | qemu_irq qdev_get_gpio_in(DeviceState *dev, int n); | 56 | qemu_irq qdev_get_gpio_in(DeviceState *dev, int n); |
60 | void qdev_connect_gpio_out(DeviceState *dev, int n, qemu_irq pin); | 57 | void qdev_connect_gpio_out(DeviceState *dev, int n, qemu_irq pin); |
61 | 58 | ||
@@ -77,7 +74,7 @@ struct DeviceInfo { | @@ -77,7 +74,7 @@ struct DeviceInfo { | ||
77 | void qdev_register(const char *name, int size, DeviceInfo *info); | 74 | void qdev_register(const char *name, int size, DeviceInfo *info); |
78 | 75 | ||
79 | /* Register device properties. */ | 76 | /* Register device properties. */ |
80 | -void qdev_init_irq_sink(DeviceState *dev, qemu_irq_handler handler, int nirq); | 77 | +/* GPIO inputs also double as IRQ sinks. */ |
81 | void qdev_init_gpio_in(DeviceState *dev, qemu_irq_handler handler, int n); | 78 | void qdev_init_gpio_in(DeviceState *dev, qemu_irq_handler handler, int n); |
82 | void qdev_init_gpio_out(DeviceState *dev, qemu_irq *pins, int n); | 79 | void qdev_init_gpio_out(DeviceState *dev, qemu_irq *pins, int n); |
83 | 80 |
hw/realview.c
@@ -84,7 +84,7 @@ static void realview_init(ram_addr_t ram_size, | @@ -84,7 +84,7 @@ static void realview_init(ram_addr_t ram_size, | ||
84 | cpu_irq[3], NULL); | 84 | cpu_irq[3], NULL); |
85 | } | 85 | } |
86 | for (n = 0; n < 64; n++) { | 86 | for (n = 0; n < 64; n++) { |
87 | - pic[n] = qdev_get_irq_sink(dev, n); | 87 | + pic[n] = qdev_get_gpio_in(dev, n); |
88 | } | 88 | } |
89 | 89 | ||
90 | sysbus_create_simple("pl050_keyboard", 0x10006000, pic[20]); | 90 | sysbus_create_simple("pl050_keyboard", 0x10006000, pic[20]); |
hw/sun4m.c
@@ -379,7 +379,7 @@ static void lance_init(NICInfo *nd, target_phys_addr_t leaddr, | @@ -379,7 +379,7 @@ static void lance_init(NICInfo *nd, target_phys_addr_t leaddr, | ||
379 | s = sysbus_from_qdev(dev); | 379 | s = sysbus_from_qdev(dev); |
380 | sysbus_mmio_map(s, 0, leaddr); | 380 | sysbus_mmio_map(s, 0, leaddr); |
381 | sysbus_connect_irq(s, 0, irq); | 381 | sysbus_connect_irq(s, 0, irq); |
382 | - *reset = qdev_get_irq_sink(dev, 0); | 382 | + *reset = qdev_get_gpio_in(dev, 0); |
383 | } | 383 | } |
384 | 384 | ||
385 | static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, ram_addr_t RAM_size, | 385 | static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, ram_addr_t RAM_size, |
hw/syborg.c
@@ -58,7 +58,7 @@ static void syborg_init(ram_addr_t ram_size, | @@ -58,7 +58,7 @@ static void syborg_init(ram_addr_t ram_size, | ||
58 | dev = sysbus_create_simple("syborg,interrupt", 0xC0000000, | 58 | dev = sysbus_create_simple("syborg,interrupt", 0xC0000000, |
59 | cpu_pic[ARM_PIC_CPU_IRQ]); | 59 | cpu_pic[ARM_PIC_CPU_IRQ]); |
60 | for (i = 0; i < 64; i++) { | 60 | for (i = 0; i < 64; i++) { |
61 | - pic[i] = qdev_get_irq_sink(dev, i); | 61 | + pic[i] = qdev_get_gpio_in(dev, i); |
62 | } | 62 | } |
63 | 63 | ||
64 | sysbus_create_simple("syborg,rtc", 0xC0001000, NULL); | 64 | sysbus_create_simple("syborg,rtc", 0xC0001000, NULL); |
hw/syborg_interrupt.c
@@ -209,7 +209,7 @@ static void syborg_int_init(SysBusDevice *dev) | @@ -209,7 +209,7 @@ static void syborg_int_init(SysBusDevice *dev) | ||
209 | 209 | ||
210 | sysbus_init_irq(dev, &s->parent_irq); | 210 | sysbus_init_irq(dev, &s->parent_irq); |
211 | s->num_irqs = qdev_get_prop_int(&dev->qdev, "num-interrupts", 64); | 211 | s->num_irqs = qdev_get_prop_int(&dev->qdev, "num-interrupts", 64); |
212 | - qdev_init_irq_sink(&dev->qdev, syborg_int_set_irq, s->num_irqs); | 212 | + qdev_init_gpio_in(&dev->qdev, syborg_int_set_irq, s->num_irqs); |
213 | iomemtype = cpu_register_io_memory(0, syborg_int_readfn, | 213 | iomemtype = cpu_register_io_memory(0, syborg_int_readfn, |
214 | syborg_int_writefn, s); | 214 | syborg_int_writefn, s); |
215 | sysbus_init_mmio(dev, 0x1000, iomemtype); | 215 | sysbus_init_mmio(dev, 0x1000, iomemtype); |
hw/versatilepb.c
@@ -135,7 +135,7 @@ static void vpb_sic_init(SysBusDevice *dev) | @@ -135,7 +135,7 @@ static void vpb_sic_init(SysBusDevice *dev) | ||
135 | int iomemtype; | 135 | int iomemtype; |
136 | int i; | 136 | int i; |
137 | 137 | ||
138 | - qdev_init_irq_sink(&dev->qdev, vpb_sic_set_irq, 32); | 138 | + qdev_init_gpio_in(&dev->qdev, vpb_sic_set_irq, 32); |
139 | for (i = 0; i < 32; i++) { | 139 | for (i = 0; i < 32; i++) { |
140 | sysbus_init_irq(dev, &s->parent[i]); | 140 | sysbus_init_irq(dev, &s->parent[i]); |
141 | } | 141 | } |
@@ -188,12 +188,12 @@ static void versatile_init(ram_addr_t ram_size, | @@ -188,12 +188,12 @@ static void versatile_init(ram_addr_t ram_size, | ||
188 | dev = sysbus_create_varargs("pl190", 0x10140000, | 188 | dev = sysbus_create_varargs("pl190", 0x10140000, |
189 | cpu_pic[0], cpu_pic[1], NULL); | 189 | cpu_pic[0], cpu_pic[1], NULL); |
190 | for (n = 0; n < 32; n++) { | 190 | for (n = 0; n < 32; n++) { |
191 | - pic[n] = qdev_get_irq_sink(dev, n); | 191 | + pic[n] = qdev_get_gpio_in(dev, n); |
192 | } | 192 | } |
193 | dev = sysbus_create_simple("versatilepb_sic", 0x10003000, NULL); | 193 | dev = sysbus_create_simple("versatilepb_sic", 0x10003000, NULL); |
194 | for (n = 0; n < 32; n++) { | 194 | for (n = 0; n < 32; n++) { |
195 | sysbus_connect_irq(sysbus_from_qdev(dev), n, pic[n]); | 195 | sysbus_connect_irq(sysbus_from_qdev(dev), n, pic[n]); |
196 | - sic[n] = qdev_get_irq_sink(dev, n); | 196 | + sic[n] = qdev_get_gpio_in(dev, n); |
197 | } | 197 | } |
198 | 198 | ||
199 | sysbus_create_simple("pl050_keyboard", 0x10006000, sic[3]); | 199 | sysbus_create_simple("pl050_keyboard", 0x10006000, sic[3]); |