Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
1a3cb06f
Commit
1a3cb06f
authored
Feb 10, 2002
by
Greg Kroah-Hartman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
patch from David Probnell, updating the USB error-codes.txt file
parent
e2116ca9
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
17 deletions
+44
-17
Documentation/usb/error-codes.txt
Documentation/usb/error-codes.txt
+44
-17
No files found.
Documentation/usb/error-codes.txt
View file @
1a3cb06f
Revised: 200
1-Dec-06
.
Revised: 200
2-Feb-09
.
This is the documentation of (hopefully) all possible error codes (and
This is the documentation of (hopefully) all possible error codes (and
their interpretation) that can be returned from the host controller drivers
their interpretation) that can be returned from usbcore.
and from usbcore.
Some of them are returned by the Host Controller Drivers (HCDs), which
device drivers only see through usbcore. As a rule, all the HCDs should
behave the same except for transfer speed dependent behaviors.
**************************************************************************
**************************************************************************
...
@@ -19,9 +22,9 @@ USB-specific:
...
@@ -19,9 +22,9 @@ USB-specific:
-ENODEV specified USB-device or bus doesn't exist
-ENODEV specified USB-device or bus doesn't exist
-ENXIO a control or interrupt URB is already queued to this endpoint;
or
-ENXIO a control or interrupt URB is already queued to this endpoint;
a bulk URB is already queued to this endpoint and
or (UHCI only) a bulk URB is already queued to this endpoint
USB_QUEUE_BULK wasn't used (UHCI HCDs only)
and USB_QUEUE_BULK wasn't used
-EINVAL a) Invalid transfer type specified (or not supported)
-EINVAL a) Invalid transfer type specified (or not supported)
b) Invalid interrupt interval (0<=n<256)
b) Invalid interrupt interval (0<=n<256)
...
@@ -34,7 +37,8 @@ USB-specific:
...
@@ -34,7 +37,8 @@ USB-specific:
-EFBIG too much ISO frames requested (currently uhci>900)
-EFBIG too much ISO frames requested (currently uhci>900)
-EPIPE specified pipe-handle is already stalled
-EPIPE Specified endpoint is stalled. For non-control endpoints,
reset this status with usb_clear_halt().
-EMSGSIZE endpoint message size is zero, do interface/alternate setting
-EMSGSIZE endpoint message size is zero, do interface/alternate setting
...
@@ -50,19 +54,29 @@ USB-specific:
...
@@ -50,19 +54,29 @@ USB-specific:
* or in iso_frame_desc[n].status (for ISO) *
* or in iso_frame_desc[n].status (for ISO) *
**************************************************************************
**************************************************************************
USB device drivers may only test urb status values in completion handlers.
This is because otherwise there would be a race between HCDs updating
these values on one CPU, and device drivers testing them on another CPU.
A transfer's actual_length may be positive even when an error has been
reported. That's because transfers often involve several packets, so that
one or more packets could finish before an error stops further endpoint I/O.
0 Transfer completed successfully
0 Transfer completed successfully
-ENOENT URB was
cancel
ed by usb_unlink_urb
-ENOENT URB was
synchronously unlink
ed by usb_unlink_urb
-EINPROGRESS URB still pending, no results yet
-EINPROGRESS URB still pending, no results yet
(
actually no error until now;-
)
(
That is, if drivers see this it's a bug.
)
-EPROTO
a) bitstuff error
-EPROTO
(*)
a) bitstuff error
b) unknown USB error
b) unknown USB error
-EILSEQ
CRC mismatch
-EILSEQ
(*)
CRC mismatch
-EPIPE endpoint stalled
-EPIPE Endpoint stalled. For non-control endpoints,
reset this status with usb_clear_halt().
-ECOMM During an IN transfer, the host controller
-ECOMM During an IN transfer, the host controller
received data from an endpoint faster than it
received data from an endpoint faster than it
...
@@ -72,24 +86,35 @@ USB-specific:
...
@@ -72,24 +86,35 @@ USB-specific:
could not retrieve data from system memory fast
could not retrieve data from system memory fast
enough to keep up with the USB data rate
enough to keep up with the USB data rate
-EOVERFLOW The amount of data returned by the endpoint was
-EOVERFLOW
(*)
The amount of data returned by the endpoint was
greater than either the max packet size of the
greater than either the max packet size of the
endpoint or the remaining buffer size. "Babble".
endpoint or the remaining buffer size. "Babble".
-EREMOTEIO The endpoint returned less than max packet size
-EREMOTEIO The endpoint returned less than max packet size
and that amount did not fill the specified buffer
and that amount did not fill the specified buffer
-ETIMEDOUT transfer timed out, NAK
(and USB_DISBLE_SPD was not set in transfer_flags)
-E
NODEV device was removed
-E
TIMEDOUT transfer timed out, NAK
-EREMOTEIO short packet detected
-ENODEV Device was removed. Often preceded by a burst of
other errors, since the hub driver does't detect
device removal events immediately.
-EXDEV ISO transfer only partially completed
-EXDEV ISO transfer only partially completed
look at individual frame status for details
look at individual frame status for details
-EINVAL ISO madness, if this happens: Log off and go home
-EINVAL ISO madness, if this happens: Log off and go home
-ECONNRESET the URB is being unlinked asynchronously
-ECONNRESET URB was asynchronously unlinked by usb_unlink_urb
-ESHUTDOWN The host controller has been disabled due to some
problem that could not be worked around.
(*) Error codes like -EPROTO, -EILSEQ and -EOVERFLOW normally indicate
hardware problems such as bad devices (including firmware) or cables.
**************************************************************************
**************************************************************************
* Error codes returned by usbcore-functions *
* Error codes returned by usbcore-functions *
...
@@ -100,4 +125,6 @@ usb_register():
...
@@ -100,4 +125,6 @@ usb_register():
-EINVAL error during registering new driver
-EINVAL error during registering new driver
usb_get_*/usb_set_*():
usb_get_*/usb_set_*():
usb_control_msg():
usb_bulk_msg():
All USB errors (submit/status) can occur
All USB errors (submit/status) can occur
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment