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 | 721 | { |
722 | 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 | 725 | for (i = 0; i < NCPU; i++) { |
726 | 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 | 186 | cpu_pic = arm_pic_init_cpu(env); |
187 | 187 | sysbus_connect_irq(sysbus_from_qdev(nvic), 0, cpu_pic[ARM_PIC_CPU_IRQ]); |
188 | 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 | 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 | 304 | sysbus_connect_irq(s, 0, cpu_irq[0]); |
305 | 305 | sysbus_connect_irq(s, 1, cpu_irq[1]); |
306 | 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 | 312 | etraxfs_dmac = etraxfs_dmac_init(env, 0x30000000, 10); |
313 | 313 | for (i = 0; i < 10; i++) { | ... | ... |
hw/esp.c
... | ... | @@ -684,7 +684,7 @@ static void esp_init1(SysBusDevice *dev) |
684 | 684 | register_savevm("esp", -1, 3, esp_save, esp_load, s); |
685 | 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 | 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 | 90 | /* FIXME: Is there a proper way to signal vectors to the CPU core? */ |
91 | 91 | qdev_set_prop_ptr(dev, "interrupt_vector", &env->interrupt_vector); |
92 | 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 | 98 | etraxfs_dmac = etraxfs_dmac_init(env, 0x30000000, 10); |
99 | 99 | for (i = 0; i < 10; i++) { | ... | ... |
hw/etraxfs_pic.c
... | ... | @@ -141,7 +141,7 @@ static void etraxfs_pic_init(SysBusDevice *dev) |
141 | 141 | int intr_vect_regs; |
142 | 142 | |
143 | 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 | 145 | sysbus_init_irq(dev, &s->parent_irq); |
146 | 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 | 378 | icp_pic_state *s = FROM_SYSBUS(icp_pic_state, dev); |
379 | 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 | 382 | sysbus_init_irq(dev, &s->parent_irq); |
383 | 383 | sysbus_init_irq(dev, &s->parent_fiq); |
384 | 384 | iomemtype = cpu_register_io_memory(0, icp_pic_readfn, |
... | ... | @@ -484,7 +484,7 @@ static void integratorcp_init(ram_addr_t ram_size, |
484 | 484 | cpu_pic[ARM_PIC_CPU_IRQ], |
485 | 485 | cpu_pic[ARM_PIC_CPU_FIQ], NULL); |
486 | 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 | 489 | sysbus_create_simple("integrator_pic", 0xca000000, pic[26]); |
490 | 490 | sysbus_create_varargs("integrator_pit", 0x13000000, | ... | ... |
hw/mpcore.c
... | ... | @@ -320,17 +320,17 @@ static void realview_mpcore_init(SysBusDevice *dev) |
320 | 320 | priv = sysbus_create_simple("arm11mpcore_priv", MPCORE_PRIV_BASE, NULL); |
321 | 321 | sysbus_pass_irq(dev, sysbus_from_qdev(priv)); |
322 | 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 | 325 | /* ??? IRQ routing is hardcoded to "normal" mode. */ |
326 | 326 | for (n = 0; n < 4; n++) { |
327 | 327 | gic = sysbus_create_simple("realview_gic", 0x10040000 + n * 0x10000, |
328 | 328 | s->cpuic[10 + n]); |
329 | 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 | 336 | static void mpcore_register_devices(void) | ... | ... |
hw/musicpal.c
... | ... | @@ -1040,7 +1040,7 @@ static void mv88w8618_pic_init(SysBusDevice *dev) |
1040 | 1040 | mv88w8618_pic_state *s = FROM_SYSBUS(mv88w8618_pic_state, dev); |
1041 | 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 | 1044 | sysbus_init_irq(dev, &s->parent_irq); |
1045 | 1045 | iomemtype = cpu_register_io_memory(0, mv88w8618_pic_readfn, |
1046 | 1046 | mv88w8618_pic_writefn, s); |
... | ... | @@ -1534,7 +1534,7 @@ static void musicpal_init(ram_addr_t ram_size, |
1534 | 1534 | dev = sysbus_create_simple("mv88w8618_pic", MP_PIC_BASE, |
1535 | 1535 | cpu_pic[ARM_PIC_CPU_IRQ]); |
1536 | 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 | 1539 | sysbus_create_varargs("mv88w8618_pit", MP_PIT_BASE, pic[MP_TIMER1_IRQ], |
1540 | 1540 | pic[MP_TIMER2_IRQ], pic[MP_TIMER3_IRQ], | ... | ... |
hw/pcnet.c
... | ... | @@ -2127,7 +2127,7 @@ static void lance_init(SysBusDevice *dev) |
2127 | 2127 | |
2128 | 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 | 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 | 235 | iomemtype = cpu_register_io_memory(0, pl190_readfn, |
236 | 236 | pl190_writefn, s); |
237 | 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 | 239 | sysbus_init_irq(dev, &s->irq); |
240 | 240 | sysbus_init_irq(dev, &s->fiq); |
241 | 241 | pl190_reset(s); | ... | ... |
hw/qdev.c
... | ... | @@ -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 | 159 | /* Get a character (serial) device interface. */ |
173 | 160 | CharDriverState *qdev_init_chardev(DeviceState *dev) |
174 | 161 | { | ... | ... |
hw/qdev.h
... | ... | @@ -17,8 +17,6 @@ struct DeviceState { |
17 | 17 | DeviceType *type; |
18 | 18 | BusState *parent_bus; |
19 | 19 | DeviceProperty *props; |
20 | - int num_irq_sink; | |
21 | - qemu_irq *irq_sink; | |
22 | 20 | int num_gpio_out; |
23 | 21 | qemu_irq *gpio_out; |
24 | 22 | int num_gpio_in; |
... | ... | @@ -55,7 +53,6 @@ void qdev_set_prop_int(DeviceState *dev, const char *name, uint64_t value); |
55 | 53 | void qdev_set_prop_ptr(DeviceState *dev, const char *name, void *value); |
56 | 54 | void qdev_set_netdev(DeviceState *dev, NICInfo *nd); |
57 | 55 | |
58 | -qemu_irq qdev_get_irq_sink(DeviceState *dev, int n); | |
59 | 56 | qemu_irq qdev_get_gpio_in(DeviceState *dev, int n); |
60 | 57 | void qdev_connect_gpio_out(DeviceState *dev, int n, qemu_irq pin); |
61 | 58 | |
... | ... | @@ -77,7 +74,7 @@ struct DeviceInfo { |
77 | 74 | void qdev_register(const char *name, int size, DeviceInfo *info); |
78 | 75 | |
79 | 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 | 78 | void qdev_init_gpio_in(DeviceState *dev, qemu_irq_handler handler, int n); |
82 | 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 | 84 | cpu_irq[3], NULL); |
85 | 85 | } |
86 | 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 | 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 | 379 | s = sysbus_from_qdev(dev); |
380 | 380 | sysbus_mmio_map(s, 0, leaddr); |
381 | 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 | 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 | 58 | dev = sysbus_create_simple("syborg,interrupt", 0xC0000000, |
59 | 59 | cpu_pic[ARM_PIC_CPU_IRQ]); |
60 | 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 | 64 | sysbus_create_simple("syborg,rtc", 0xC0001000, NULL); | ... | ... |
hw/syborg_interrupt.c
... | ... | @@ -209,7 +209,7 @@ static void syborg_int_init(SysBusDevice *dev) |
209 | 209 | |
210 | 210 | sysbus_init_irq(dev, &s->parent_irq); |
211 | 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 | 213 | iomemtype = cpu_register_io_memory(0, syborg_int_readfn, |
214 | 214 | syborg_int_writefn, s); |
215 | 215 | sysbus_init_mmio(dev, 0x1000, iomemtype); | ... | ... |
hw/versatilepb.c
... | ... | @@ -135,7 +135,7 @@ static void vpb_sic_init(SysBusDevice *dev) |
135 | 135 | int iomemtype; |
136 | 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 | 139 | for (i = 0; i < 32; i++) { |
140 | 140 | sysbus_init_irq(dev, &s->parent[i]); |
141 | 141 | } |
... | ... | @@ -188,12 +188,12 @@ static void versatile_init(ram_addr_t ram_size, |
188 | 188 | dev = sysbus_create_varargs("pl190", 0x10140000, |
189 | 189 | cpu_pic[0], cpu_pic[1], NULL); |
190 | 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 | 193 | dev = sysbus_create_simple("versatilepb_sic", 0x10003000, NULL); |
194 | 194 | for (n = 0; n < 32; n++) { |
195 | 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 | 199 | sysbus_create_simple("pl050_keyboard", 0x10006000, sic[3]); | ... | ... |