aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2011-05-28 11:47:15 -0400
committerGerd Hoffmann <kraxel@redhat.com>2011-06-14 12:56:49 +0200
commit46115ac4c4f211b5b9b4d22f7af6ebe91c79a05c (patch)
tree175e49baecda1d3cf10cebba38f0dee26a0cba83
parentd05393071ad4cb72ae69f77f9f61fc451251521f (diff)
downloadqemu-46115ac4c4f211b5b9b4d22f7af6ebe91c79a05c.zip
qemu-46115ac4c4f211b5b9b4d22f7af6ebe91c79a05c.tar.gz
qemu-46115ac4c4f211b5b9b4d22f7af6ebe91c79a05c.tar.bz2
Fix USB mouse Set_Protocol behavior
The QEMU USB mouse claims to support the "boot" protocol (bInterfaceSubClass is 1). However, the mouse rejects the Set_Protocol command. The qemu mouse does support the "boot" protocol specification, so a simple fix is to enable the Set_Protocol request. Signed-off-by: Kevin O'Connor <kevin@koconnor.net> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--hw/usb-hid.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/usb-hid.c b/hw/usb-hid.c
index 53b261c..8197a86 100644
--- a/hw/usb-hid.c
+++ b/hw/usb-hid.c
@@ -782,13 +782,13 @@ static int usb_hid_handle_control(USBDevice *dev, USBPacket *p,
goto fail;
break;
case GET_PROTOCOL:
- if (s->kind != USB_KEYBOARD)
+ if (s->kind != USB_KEYBOARD && s->kind != USB_MOUSE)
goto fail;
ret = 1;
data[0] = s->protocol;
break;
case SET_PROTOCOL:
- if (s->kind != USB_KEYBOARD)
+ if (s->kind != USB_KEYBOARD && s->kind != USB_MOUSE)
goto fail;
ret = 0;
s->protocol = value;