---
hw/pci/pci.c | 22 ++++++++++++++++------
include/hw/pci/pci.h | 1 +
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 24fae16..0d5a862 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -1816,19 +1816,19 @@ PCIDevice *pci_nic_init_nofail(NICInfo *nd, PCIBus
*rootbus,
return pci_dev;
}
-PCIDevice *pci_vga_init(PCIBus *bus)
+const char *pci_vga_type(void)
{
switch (vga_interface_type) {
case VGA_CIRRUS:
- return pci_create_simple(bus, -1, "cirrus-vga");
+ return "cirrus-vga";
case VGA_QXL:
- return pci_create_simple(bus, -1, "qxl-vga");
+ return "qxl-vga";
case VGA_STD:
- return pci_create_simple(bus, -1, "VGA");
+ return "VGA";
case VGA_VMWARE:
- return pci_create_simple(bus, -1, "vmware-svga");
+ return "vmware-svga";
case VGA_VIRTIO:
- return pci_create_simple(bus, -1, "virtio-vga");
+ return "virtio-vga";
case VGA_NONE:
default: /* Other non-PCI types. Checking for unsupported types is already
done in vl.c. */
@@ -1836,6 +1836,16 @@ PCIDevice *pci_vga_init(PCIBus *bus)
}
}
+PCIDevice *pci_vga_init(PCIBus *bus)
+{
+ const char *vga_type = pci_vga_type();
+ if (vga_type) {
+ return pci_create_simple(bus, -1, vga_type);
+ } else {
+ return NULL;
+ }
+}
+
/* Whether a given bus number is in range of the secondary
* bus of the given bridge device. */
static bool pci_secondary_bus_in_range(PCIDevice *dev, int bus_num)
diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h
index 772692f..aa8d014 100644
--- a/include/hw/pci/pci.h
+++ b/include/hw/pci/pci.h
@@ -420,6 +420,7 @@ PCIDevice *pci_nic_init_nofail(NICInfo *nd, PCIBus *rootbus,
const char *default_model,
const char *default_devaddr);
+const char *pci_vga_type(void);
PCIDevice *pci_vga_init(PCIBus *bus);
int pci_bus_num(PCIBus *s);