aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2016-09-09 09:41:30 +0200
committerGerd Hoffmann <kraxel@redhat.com>2016-09-13 09:19:26 +0200
commit6a71123469e0c9286354c6655440da51566c1763 (patch)
tree7fdf9126979480ba7b823561a3406df104e397c7
parentb66ad1f1aa4dba4e8e242ad8339dd01f4ee77c5e (diff)
usb-host: fix streams detection in usb_host_speed_compat
The companion descriptor is present on all usb3 devices, not only those with streams support. We need to check attributes to see whenever the device uses streams or not. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 1473406890-30164-1-git-send-email-kraxel@redhat.com
-rw-r--r--hw/usb/host-libusb.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c
index e94672c155..bd81d71a98 100644
--- a/hw/usb/host-libusb.c
+++ b/hw/usb/host-libusb.c
@@ -743,10 +743,13 @@ static void usb_host_speed_compat(USBHostDevice *s)
rc = libusb_get_ss_endpoint_companion_descriptor
(ctx, endp, &endp_ss_comp);
if (rc == LIBUSB_SUCCESS) {
+ int streams = endp_ss_comp->bmAttributes & 0x1f;
+ if (streams) {
+ compat_full = false;
+ compat_high = false;
+ }
libusb_free_ss_endpoint_companion_descriptor
(endp_ss_comp);
- compat_full = false;
- compat_high = false;
}
#endif
break;