usb-hid: activate usb tablet / mouse after migration.
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>
This commit is contained in:
		
							parent
							
								
									905fb0342c
								
							
						
					
					
						commit
						3a3286bf0b
					
				
							
								
								
									
										11
									
								
								hw/usb-hid.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								hw/usb-hid.c
									
									
									
									
									
								
							| @ -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), | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Gerd Hoffmann
						Gerd Hoffmann