From b664b80f194f472fd6f9b9a235b095bbde873f4e Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 21 Nov 2013 17:21:00 +0100 Subject: usb-host-libusb: Fill in endpoint max_streams when available Signed-off-by: Hans de Goede Signed-off-by: Gerd Hoffmann --- hw/usb/host-libusb.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c index 57bed09..3fdbd93 100644 --- a/hw/usb/host-libusb.c +++ b/hw/usb/host-libusb.c @@ -720,6 +720,9 @@ static void usb_host_ep_update(USBHostDevice *s) struct libusb_config_descriptor *conf; const struct libusb_interface_descriptor *intf; const struct libusb_endpoint_descriptor *endp; +#if LIBUSBX_API_VERSION >= 0x01000103 + struct libusb_ss_endpoint_companion_descriptor *endp_ss_comp; +#endif uint8_t devep, type; int pid, ep; int rc, i, e; @@ -765,6 +768,15 @@ static void usb_host_ep_update(USBHostDevice *s) usb_ep_set_type(udev, pid, ep, type); usb_ep_set_ifnum(udev, pid, ep, i); usb_ep_set_halted(udev, pid, ep, 0); +#if LIBUSBX_API_VERSION >= 0x01000103 + if (type == LIBUSB_TRANSFER_TYPE_BULK && + libusb_get_ss_endpoint_companion_descriptor(ctx, endp, + &endp_ss_comp) == LIBUSB_SUCCESS) { + usb_ep_set_max_streams(udev, pid, ep, + endp_ss_comp->bmAttributes); + libusb_free_ss_endpoint_companion_descriptor(endp_ss_comp); + } +#endif } } -- cgit v1.1