diff mbox

[v2,1/6] vmware-vga: Register reset service

Message ID 307f432f5587c0f2ec52d153c792f05bac28d30f.1313620857.git.jan.kiszka@web.de
State New
Headers show

Commit Message

Jan Kiszka Aug. 17, 2011, 10:40 p.m. UTC
From: Jan Kiszka <jan.kiszka@siemens.com>

Fixes cold reset in vmware graphic modes.

Reviewed-by: Andrzej Zaborowski <balrogg@gmail.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 hw/vmware_vga.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)
diff mbox

Patch

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",