From: Jan Kiszka <jan.kis...@siemens.com> Fixes cold reset in vmware graphic modes.
Reviewed-by: Andrzej Zaborowski <balr...@gmail.com> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- hw/vmware_vga.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hw/vmware_vga.c b/hw/vmware_vga.c index d5cfa70..3626bb0 100644 --- a/hw/vmware_vga.c +++ b/hw/vmware_vga.c @@ -998,8 +998,12 @@ static void vmsvga_update_display(void *opaque) } } -static void vmsvga_reset(struct vmsvga_state_s *s) +static void vmsvga_reset(DeviceState *dev) { + struct pci_vmsvga_state_s *pci = + DO_UPCAST(struct pci_vmsvga_state_s, card.qdev, dev); + struct vmsvga_state_s *s = &pci->chip; + s->index = 0; s->enable = 0; s->config = 0; @@ -1225,8 +1229,6 @@ static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size) vga_common_init(&s->vga, vga_ram_size); vga_init(&s->vga); vmstate_register(NULL, 0, &vmstate_vga_common, &s->vga); - - vmsvga_reset(s); } static uint64_t vmsvga_io_read(void *opaque, target_phys_addr_t addr, @@ -1311,6 +1313,7 @@ static PCIDeviceInfo vmsvga_info = { .qdev.name = "vmware-svga", .qdev.size = sizeof(struct pci_vmsvga_state_s), .qdev.vmsd = &vmstate_vmware_vga, + .qdev.reset = vmsvga_reset, .no_hotplug = 1, .init = pci_vmsvga_initfn, .romfile = "vgabios-vmware.bin", -- 1.7.3.4