Revision d350d97d hw/pci.c

b/hw/pci.c
50 50
static void pci_set_irq(void *opaque, int irq_num, int level);
51 51

  
52 52
target_phys_addr_t pci_mem_base;
53
static uint16_t pci_default_sub_vendor_id = PCI_SUBVENDOR_ID_REDHAT_QUMRANET;
54
static uint16_t pci_default_sub_device_id = PCI_SUBDEVICE_ID_QEMU;
53 55
static int pci_irq_index;
54 56
static PCIBus *first_bus;
55 57

  
......
145 147
    return 0;
146 148
}
147 149

  
150
static int pci_set_default_subsystem_id(PCIDevice *pci_dev)
151
{
152
    uint16_t *id;
153

  
154
    id = (void*)(&pci_dev->config[PCI_SUBVENDOR_ID]);
155
    id[0] = cpu_to_le16(pci_default_sub_vendor_id);
156
    id[1] = cpu_to_le16(pci_default_sub_device_id);
157
    return 0;
158
}
159

  
148 160
/* -1 for devfn means auto assign */
149 161
PCIDevice *pci_register_device(PCIBus *bus, const char *name,
150 162
                               int instance_size, int devfn,
......
171 183
    pci_dev->devfn = devfn;
172 184
    pstrcpy(pci_dev->name, sizeof(pci_dev->name), name);
173 185
    memset(pci_dev->irq_state, 0, sizeof(pci_dev->irq_state));
186
    pci_set_default_subsystem_id(pci_dev);
174 187

  
175 188
    if (!config_read)
176 189
        config_read = pci_default_read_config;

Also available in: Unified diff