summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2017-01-31 14:52:07 +0100
committerGerd Hoffmann <kraxel@redhat.com>2017-02-06 10:23:17 +0100
commit811ad5d8f1d3f35240043fe880d34dce6f2097a3 (patch)
tree66371b569263d818ee8884c1326ca6d93d4905fe
parente306b2fd3bce369feb05e2510299f81d71bc6092 (diff)
downloadfocaccia-qemu-811ad5d8f1d3f35240043fe880d34dce6f2097a3.tar.gz
focaccia-qemu-811ad5d8f1d3f35240043fe880d34dce6f2097a3.zip
usb: accept usb3 control requests
Windows 10 reportedly sends these, so accept them in case
the device in question is a superspeed (usb3) device.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 1485870727-21956-2-git-send-email-kraxel@redhat.com
-rw-r--r--hw/usb/desc.c7
-rw-r--r--include/hw/usb.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/hw/usb/desc.c b/hw/usb/desc.c
index 7828e52c6f..c36bf30e4f 100644
--- a/hw/usb/desc.c
+++ b/hw/usb/desc.c
@@ -774,6 +774,13 @@ int usb_desc_handle_control(USBDevice *dev, USBPacket *p,
         trace_usb_set_device_feature(dev->addr, value, ret);
         break;
 
+    case DeviceOutRequest | USB_REQ_SET_SEL:
+    case DeviceOutRequest | USB_REQ_SET_ISOCH_DELAY:
+        if (dev->speed == USB_SPEED_SUPER) {
+            ret = 0;
+        }
+        break;
+
     case InterfaceRequest | USB_REQ_GET_INTERFACE:
         if (index < 0 || index >= dev->ninterfaces) {
             break;
diff --git a/include/hw/usb.h b/include/hw/usb.h
index 43838c9f5d..c42b29c866 100644
--- a/include/hw/usb.h
+++ b/include/hw/usb.h
@@ -135,6 +135,8 @@
 #define USB_REQ_GET_INTERFACE		0x0A
 #define USB_REQ_SET_INTERFACE		0x0B
 #define USB_REQ_SYNCH_FRAME		0x0C
+#define USB_REQ_SET_SEL                 0x30
+#define USB_REQ_SET_ISOCH_DELAY         0x31
 
 #define USB_DEVICE_SELF_POWERED		0
 #define USB_DEVICE_REMOTE_WAKEUP	1