summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usb_generic.c
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2011-06-06 21:45:09 +0000
committerhselasky <hselasky@FreeBSD.org>2011-06-06 21:45:09 +0000
commit5f55faed0601b0486b09dd7ec3727f5312e33d5d (patch)
tree0b32799a28515b5c61e32d9d9a2ae9fedbba5065 /sys/dev/usb/usb_generic.c
parentc8e197a2037e17686f997232419f8b02d1e61ffc (diff)
downloadFreeBSD-src-5f55faed0601b0486b09dd7ec3727f5312e33d5d.zip
FreeBSD-src-5f55faed0601b0486b09dd7ec3727f5312e33d5d.tar.gz
Improve enumeration of Low- and Full-speed devices connected through a
High-speed USB HUB by resetting the transaction translator (TT) before trying re-enumeration. Also when clear-stall fails multiple times try a re-enumeration. Suggested by: Trevor Blackwell MFC after: 14 days
Diffstat (limited to 'sys/dev/usb/usb_generic.c')
-rw-r--r--sys/dev/usb/usb_generic.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/dev/usb/usb_generic.c b/sys/dev/usb/usb_generic.c
index 714ee6f..d62f8f9 100644
--- a/sys/dev/usb/usb_generic.c
+++ b/sys/dev/usb/usb_generic.c
@@ -966,10 +966,8 @@ ugen_re_enumerate(struct usb_fifo *f)
/* ignore any errors */
DPRINTFN(6, "no FIFOs\n");
}
- if (udev->re_enumerate_wait == 0) {
- udev->re_enumerate_wait = 1;
- usb_needs_explore(udev->bus, 0);
- }
+ /* start re-enumeration of device */
+ usbd_start_re_enumerate(udev);
return (0);
}
OpenPOWER on IntegriCloud