x86,MIPS: make vmware_vga optional

Allow failure with vmware_vga device creation and use standard
VGA instead.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
Blue Swirl 2011-02-05 14:34:37 +00:00
parent 7cc050b165
commit 7ba7e49e6a
3 changed files with 22 additions and 6 deletions

View File

@ -957,7 +957,11 @@ void mips_malta_init (ram_addr_t ram_size,
if (cirrus_vga_enabled) { if (cirrus_vga_enabled) {
pci_cirrus_vga_init(pci_bus); pci_cirrus_vga_init(pci_bus);
} else if (vmsvga_enabled) { } else if (vmsvga_enabled) {
pci_vmsvga_init(pci_bus); if (!pci_vmsvga_init(pci_bus)) {
fprintf(stderr, "Warning: vmware_vga not available,"
" using standard VGA instead\n");
pci_vga_init(pci_bus);
}
} else if (std_vga_enabled) { } else if (std_vga_enabled) {
pci_vga_init(pci_bus); pci_vga_init(pci_bus);
} }

11
hw/pc.c
View File

@ -1053,10 +1053,15 @@ void pc_vga_init(PCIBus *pci_bus)
isa_cirrus_vga_init(); isa_cirrus_vga_init();
} }
} else if (vmsvga_enabled) { } else if (vmsvga_enabled) {
if (pci_bus) if (pci_bus) {
pci_vmsvga_init(pci_bus); if (!pci_vmsvga_init(pci_bus)) {
else fprintf(stderr, "Warning: vmware_vga not available,"
" using standard VGA instead\n");
pci_vga_init(pci_bus);
}
} else {
fprintf(stderr, "%s: vmware_vga: no PCI bus\n", __FUNCTION__); fprintf(stderr, "%s: vmware_vga: no PCI bus\n", __FUNCTION__);
}
#ifdef CONFIG_SPICE #ifdef CONFIG_SPICE
} else if (qxl_enabled) { } else if (qxl_enabled) {
if (pci_bus) if (pci_bus)

View File

@ -4,9 +4,16 @@
#include "qemu-common.h" #include "qemu-common.h"
/* vmware_vga.c */ /* vmware_vga.c */
static inline void pci_vmsvga_init(PCIBus *bus) static inline bool pci_vmsvga_init(PCIBus *bus)
{ {
pci_create_simple(bus, -1, "vmware-svga"); PCIDevice *dev;
dev = pci_try_create(bus, -1, "vmware-svga");
if (!dev || qdev_init(&dev->qdev) < 0) {
return false;
} else {
return true;
}
} }
#endif #endif