-ENODEV specified USB-device or bus doesn't exist
+-ENOENT specified interface or endpoint does not exist or
+ is not enabled
+
-ENXIO host controller driver does not support queuing of this type
of urb. (treat as a host controller bug.)
-EMSGSIZE (a) endpoint maxpacket size is zero; it is not usable
in the current interface altsetting.
- (b) ISO packet is biger than endpoint maxpacket
- (c) requested data transfer size is invalid (negative)
+ (b) ISO packet is larger than the endpoint maxpacket.
+ (c) requested data transfer length is invalid: negative
+ or too large for the host controller.
-ENOSPC This request would overcommit the usb bandwidth reserved
for periodic transfers (interrupt, isochronous).
prescribed bus turn-around time
c) unknown USB error
- In cases b) and c) either -EPROTO or -EILSEQ
- may be returned. Note that often the controller
- hardware does not distinguish among cases a),
- b), and c), so a driver cannot tell whether
- there was a protocol error, a failure to respond
- (often caused by device disconnect), or some
- other fault.
+ Note that often the controller hardware does not
+ distinguish among cases a), b), and c), so a
+ driver cannot tell whether there was a protocol
+ error, a failure to respond (often caused by
+ device disconnect), or some other fault.
+
+-ETIME (**) No response packet received within the prescribed
+ bus turn-around time. This error may instead be
+ reported as -EPROTO or -EILSEQ.
+
+-ETIMEDOUT Synchronous USB message functions use this code
+ to indicate timeout expired before the transfer
+ completed, and no other error was reported by HC.
-EPIPE (**) Endpoint stalled. For non-control endpoints,
reset this status with usb_clear_halt().
urb->transfer_flags.
-ENODEV Device was removed. Often preceded by a burst of
- other errors, since the hub driver does't detect
+ other errors, since the hub driver doesn't detect
device removal events immediately.
-EXDEV ISO transfer only partially completed
hardware problems such as bad devices (including firmware) or cables.
(**) This is also one of several codes that different kinds of host
-controller use to to indicate a transfer has failed because of device
+controller use to indicate a transfer has failed because of device
disconnect. In the interval before the hub driver starts disconnect
processing, devices may receive such fault reports for every request.
usb_get_*/usb_set_*():
usb_control_msg():
usb_bulk_msg():
--ETIMEDOUT timeout expired before the transfer completed
+-ETIMEDOUT Timeout expired before the transfer completed.