summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/usb_subr.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/usb/usb_subr.c')
-rw-r--r--sys/dev/usb/usb_subr.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/usb/usb_subr.c b/sys/dev/usb/usb_subr.c
index adeb436..c0e1442 100644
--- a/sys/dev/usb/usb_subr.c
+++ b/sys/dev/usb/usb_subr.c
@@ -818,9 +818,14 @@ usbd_setup_pipe(usbd_device_handle dev, usbd_interface_handle iface,
/* Clear any stall and make sure DATA0 toggle will be used next. */
if (UE_GET_ADDR(ep->edesc->bEndpointAddress) != USB_CONTROL_ENDPOINT) {
err = usbd_clear_endpoint_stall(p);
- /* Some devices reject this command, so ignore a STALL. */
- if (err && err != USBD_STALLED) {
- printf("usbd_setup_pipe: failed to start endpoint, %s\n", usbd_errstr(err));
+ /*
+ * Some devices reject this command, so ignore a STALL. */
+ * Some device just time out on this command, so ignore
+ * that too.
+ */
+ if (err && err != USBD_STALLED && err != USBD_TIMEOUT) {
+ printf("usbd_setup_pipe: failed to start "
+ "endpoint, %s\n", usbd_errstr(err));
return (err);
}
}
OpenPOWER on IntegriCloud