summaryrefslogtreecommitdiff
path: root/libusb/os
diff options
context:
space:
mode:
authorPete Batard <pete@akeo.ie>2011-09-19 15:45:35 +0100
committerPeter Stuge <peter@stuge.se>2011-10-17 16:25:51 +0200
commitefd3fae8f95ef7797ecd4b5731b198f100007d6a (patch)
tree268b5898274b8d85db367462d09f4d9df2391305 /libusb/os
parenta8d1eb7963e5811e16e8fb7e157cf3a00d888347 (diff)
downloadlibusb-efd3fae8f95ef7797ecd4b5731b198f100007d6a.tar.gz
Windows: fix communication with hubs
* issue reported by René Haunstrup in http://marc.info/?m=130503019227814
Diffstat (limited to 'libusb/os')
-rw-r--r--libusb/os/windows_usb.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/libusb/os/windows_usb.c b/libusb/os/windows_usb.c
index a96c8c4..bf1b9c6 100644
--- a/libusb/os/windows_usb.c
+++ b/libusb/os/windows_usb.c
@@ -1446,6 +1446,7 @@ static int windows_get_device_list(struct libusb_context *ctx, struct discovered
priv->depth = UINT8_MAX; // Overflow to 0 for HCD Hubs
priv->path = dev_interface_path; dev_interface_path = NULL;
break;
+ case HUB_PASS:
case DEV_PASS:
// If the device has already been setup, don't do it again
if (priv->path != NULL)
@@ -1455,6 +1456,7 @@ static int windows_get_device_list(struct libusb_context *ctx, struct discovered
priv->apib = &usb_api_backend[api];
switch(api) {
case USB_API_COMPOSITE:
+ case USB_API_HUB:
break;
default:
// For other devices, the first interface is the same as the device
@@ -1470,10 +1472,6 @@ static int windows_get_device_list(struct libusb_context *ctx, struct discovered
break;
}
break;
- case HUB_PASS:
- priv->apib = &usb_api_backend[api];
- priv->path = dev_interface_path; dev_interface_path = NULL;
- break;
case GEN_PASS:
r = init_device(dev, parent_dev, (uint8_t)port_nr, dev_id_path, dev_info_data.DevInst);
if (r == LIBUSB_SUCCESS) {