| Revised: 2001-Dec-06. |
| |
| This is the documentation of (hopefully) all possible error codes (and |
| their interpretation) that can be returned from the host controller drivers |
| and from usbcore. |
| |
| |
| ************************************************************************** |
| * Error codes returned by usb_submit_urb * |
| ************************************************************************** |
| |
| Non-USB-specific: |
| |
| 0 URB submission went fine |
| |
| -ENOMEM no memory for allocation of internal structures |
| |
| USB-specific: |
| |
| -ENODEV specified USB-device or bus doesn't exist |
| |
| -ENXIO a control or interrupt URB is already queued to this endpoint; or |
| a bulk URB is already queued to this endpoint and |
| USB_QUEUE_BULK wasn't used (UHCI HCDs only) |
| |
| -EINVAL a) Invalid transfer type specified (or not supported) |
| b) Invalid interrupt interval (0<=n<256) |
| c) more than one interrupt packet requested |
| d) ISO: number_of_packets is < 0 |
| |
| -EAGAIN a) specified ISO start frame too early |
| b) (using ISO-ASAP) too much scheduled for the future |
| wait some time and try again. |
| |
| -EFBIG too much ISO frames requested (currently uhci>900) |
| |
| -EPIPE specified pipe-handle is already stalled |
| |
| -EMSGSIZE endpoint message size is zero, do interface/alternate setting |
| |
| -ENOSPC The host controller's bandwidth is already consumed and |
| this request would push it past its allowed limit. |
| |
| -ESHUTDOWN The host controller has been disabled due to some |
| problem that could not be worked around. |
| |
| |
| ************************************************************************** |
| * Error codes returned by in urb->status * |
| * or in iso_frame_desc[n].status (for ISO) * |
| ************************************************************************** |
| |
| 0 Transfer completed successfully |
| |
| -ENOENT URB was canceled by usb_unlink_urb |
| |
| -EINPROGRESS URB still pending, no results yet |
| (actually no error until now;-) |
| |
| -EPROTO a) bitstuff error |
| b) unknown USB error |
| |
| -EILSEQ CRC mismatch |
| |
| -EPIPE endpoint stalled |
| |
| -ECOMM During an IN transfer, the host controller |
| received data from an endpoint faster than it |
| could be written to system memory |
| |
| -ENOSR During an OUT transfer, the host controller |
| could not retrieve data from system memory fast |
| enough to keep up with the USB data rate |
| |
| -EOVERFLOW The amount of data returned by the endpoint was |
| greater than either the max packet size of the |
| endpoint or the remaining buffer size. "Babble". |
| |
| -EREMOTEIO The endpoint returned less than max packet size |
| and that amount did not fill the specified buffer |
| -ETIMEDOUT transfer timed out, NAK |
| |
| -ENODEV device was removed |
| |
| -EREMOTEIO short packet detected |
| |
| -EXDEV ISO transfer only partially completed |
| look at individual frame status for details |
| |
| -EINVAL ISO madness, if this happens: Log off and go home |
| |
| -ECONNRESET the URB is being unlinked asynchronously |
| |
| ************************************************************************** |
| * Error codes returned by usbcore-functions * |
| * (expect also other submit and transfer status codes) * |
| ************************************************************************** |
| |
| usb_register(): |
| -EINVAL error during registering new driver |
| |
| usb_get_*/usb_set_*(): |
| All USB errors (submit/status) can occur |