Revision 97aff481 hw/versatile_pci.c
b/hw/versatile_pci.c | ||
---|---|---|
79 | 79 |
&pci_vpb_config_readl, |
80 | 80 |
}; |
81 | 81 |
|
82 |
static int pci_vpb_irq; |
|
83 |
|
|
84 | 82 |
static int pci_vpb_map_irq(PCIDevice *d, int irq_num) |
85 | 83 |
{ |
86 | 84 |
return irq_num; |
... | ... | |
88 | 86 |
|
89 | 87 |
static void pci_vpb_set_irq(qemu_irq *pic, int irq_num, int level) |
90 | 88 |
{ |
91 |
qemu_set_irq(pic[pci_vpb_irq + irq_num], level);
|
|
89 |
qemu_set_irq(pic[irq_num], level); |
|
92 | 90 |
} |
93 | 91 |
|
94 |
PCIBus *pci_vpb_init(qemu_irq *pic, int irq, int realview)
|
|
92 |
PCIBus *pci_vpb_init(qemu_irq *pic, int realview) |
|
95 | 93 |
{ |
96 | 94 |
PCIBus *s; |
97 | 95 |
PCIDevice *d; |
98 | 96 |
int mem_config; |
99 | 97 |
uint32_t base; |
100 | 98 |
const char * name; |
99 |
qemu_irq *irqs; |
|
100 |
int i; |
|
101 | 101 |
|
102 |
pci_vpb_irq = irq; |
|
102 |
irqs = qemu_mallocz(sizeof(qemu_irq) * 4); |
|
103 |
for (i = 0; i < 4; i++) { |
|
104 |
irqs[i] = pic[i]; |
|
105 |
} |
|
103 | 106 |
if (realview) { |
104 | 107 |
base = 0x60000000; |
105 | 108 |
name = "RealView EB PCI Controller"; |
... | ... | |
107 | 110 |
base = 0x40000000; |
108 | 111 |
name = "Versatile/PB PCI Controller"; |
109 | 112 |
} |
110 |
s = pci_register_bus(pci_vpb_set_irq, pci_vpb_map_irq, pic, 11 << 3, 4);
|
|
113 |
s = pci_register_bus(pci_vpb_set_irq, pci_vpb_map_irq, irqs, 11 << 3, 4);
|
|
111 | 114 |
/* ??? Register memory space. */ |
112 | 115 |
|
113 | 116 |
mem_config = cpu_register_io_memory(0, pci_vpb_config_read, |
Also available in: Unified diff