]> git.proxmox.com Git - qemu.git/commitdiff
usb-hid: activate usb tablet / mouse after migration.
authorGerd Hoffmann <kraxel@redhat.com>
Wed, 12 Oct 2011 10:54:35 +0000 (12:54 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Thu, 13 Oct 2011 10:58:51 +0000 (12:58 +0200)
qemu uses the ps/2 mouse by default.  The usb tablet (or mouse) is
activated as soon as qemu sees some guest activity on the device,
i.e. polling for HID events.  That used to work fine for both fresh
boot and migration.

Remote wakeup support changed the picture though: There will be no
polling after migration in case the guest suspended the usb bus,
waiting for wakeup events.  Result is that the ps/2 mouse stays
active.

Fix this by activating the usb tablet / mouse in post_load() in case
the guest enabled remote wakeup.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb-hid.c

index ba794664019e6f6d76bc79fada9facdd3606c693..a110c74dda0a7f32f76c763b84afdb7809933541 100644 (file)
@@ -527,10 +527,21 @@ static int usb_keyboard_initfn(USBDevice *dev)
     return usb_hid_initfn(dev, HID_KEYBOARD);
 }
 
+static int usb_ptr_post_load(void *opaque, int version_id)
+{
+    USBHIDState *s = opaque;
+
+    if (s->dev.remote_wakeup) {
+        hid_pointer_activate(&s->hid);
+    }
+    return 0;
+}
+
 static const VMStateDescription vmstate_usb_ptr = {
     .name = "usb-ptr",
     .version_id = 1,
     .minimum_version_id = 1,
+    .post_load = usb_ptr_post_load,
     .fields = (VMStateField []) {
         VMSTATE_USB_DEVICE(dev, USBHIDState),
         VMSTATE_HID_POINTER_DEVICE(hid, USBHIDState),