|
@@ -1737,9 +1737,6 @@ static PciDeviceInfo *qmp_query_pci_device(PCIDevice *dev, PCIBus *bus,
|
|
info->id = g_new0(PciDeviceId, 1);
|
|
info->id = g_new0(PciDeviceId, 1);
|
|
info->id->vendor = pci_get_word(dev->config + PCI_VENDOR_ID);
|
|
info->id->vendor = pci_get_word(dev->config + PCI_VENDOR_ID);
|
|
info->id->device = pci_get_word(dev->config + PCI_DEVICE_ID);
|
|
info->id->device = pci_get_word(dev->config + PCI_DEVICE_ID);
|
|
- info->id->subsystem = pci_get_word(dev->config + PCI_SUBSYSTEM_ID);
|
|
|
|
- info->id->subsystem_vendor =
|
|
|
|
- pci_get_word(dev->config + PCI_SUBSYSTEM_VENDOR_ID);
|
|
|
|
info->regions = qmp_query_pci_regions(dev);
|
|
info->regions = qmp_query_pci_regions(dev);
|
|
info->qdev_id = g_strdup(dev->qdev.id ? dev->qdev.id : "");
|
|
info->qdev_id = g_strdup(dev->qdev.id ? dev->qdev.id : "");
|
|
|
|
|
|
@@ -1752,6 +1749,16 @@ static PciDeviceInfo *qmp_query_pci_device(PCIDevice *dev, PCIBus *bus,
|
|
if (type == PCI_HEADER_TYPE_BRIDGE) {
|
|
if (type == PCI_HEADER_TYPE_BRIDGE) {
|
|
info->has_pci_bridge = true;
|
|
info->has_pci_bridge = true;
|
|
info->pci_bridge = qmp_query_pci_bridge(dev, bus, bus_num);
|
|
info->pci_bridge = qmp_query_pci_bridge(dev, bus, bus_num);
|
|
|
|
+ } else if (type == PCI_HEADER_TYPE_NORMAL) {
|
|
|
|
+ info->id->has_subsystem = info->id->has_subsystem_vendor = true;
|
|
|
|
+ info->id->subsystem = pci_get_word(dev->config + PCI_SUBSYSTEM_ID);
|
|
|
|
+ info->id->subsystem_vendor =
|
|
|
|
+ pci_get_word(dev->config + PCI_SUBSYSTEM_VENDOR_ID);
|
|
|
|
+ } else if (type == PCI_HEADER_TYPE_CARDBUS) {
|
|
|
|
+ info->id->has_subsystem = info->id->has_subsystem_vendor = true;
|
|
|
|
+ info->id->subsystem = pci_get_word(dev->config + PCI_CB_SUBSYSTEM_ID);
|
|
|
|
+ info->id->subsystem_vendor =
|
|
|
|
+ pci_get_word(dev->config + PCI_CB_SUBSYSTEM_VENDOR_ID);
|
|
}
|
|
}
|
|
|
|
|
|
return info;
|
|
return info;
|