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