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) {
pci_cirrus_vga_init(pci_bus);
} 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) {
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();
}
} else if (vmsvga_enabled) {
if (pci_bus)
pci_vmsvga_init(pci_bus);
else
if (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 {
fprintf(stderr, "%s: vmware_vga: no PCI bus\n", __FUNCTION__);
}
#ifdef CONFIG_SPICE
} else if (qxl_enabled) {
if (pci_bus)

View File

@ -4,9 +4,16 @@
#include "qemu-common.h"
/* 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