转载 2016年06月01日 17:26:32

from 13.3. USB Urbs: http://www.makelinux.net/ldd3/chp-13-sect-3

Valid values for this variable include:


The urb transfer was successful.


The urb was stopped by a call to usb_kill_urb.



The urb was unlinked by a call to usb_unlink_urb, and the TRansfer_flags variable of the urb was set to URB_ASYNC_UNLINK.


The urb is still being processed by the USB host controllers. If your driver ever sees this value, it is a bug in your driver.


One of the following errors occurred with this urb:

  • A bitstuff error happened during the transfer.

  • No response packet was received in time by the hardware.


There was a CRC mismatch in the urb transfer.


The endpoint is now stalled. If the endpoint involved is not a control endpoint, this error can be cleared through a call to the function usb_clear_halt.


Data was received faster during the transfer than it could be written to system memory. This error value happens only for an IN urb.


Data could not be retrieved from the system memory during the transfer fast enough to keep up with the requested USB data rate. This error value happens only for an OUT urb.


A "babble" error happened to the urb. A "babble" error occurs when the endpoint receives more data than the endpoint's specified maximum packet size.


Occurs only if the URB_SHORT_NOT_OK flag is set in the urb's transfer_flags variable and means that the full amount of data requested by the urb was not received.


The USB device is now gone from the system.


Occurs only for a isochronous urb and means that the transfer was only partially completed. In order to determine what was transferred, the driver must look at the individual frame status.


Something very bad happened with the urb. The USB kernel documentation describes what this value means:

ISO madness, if this happens: Log off and go home

It also can happen if a parameter is incorrectly set in the urb stucture or if an incorrect function parameter in the usb_submit_urb call submitted the urb to the USB core.


There was a severe error with the USB host controller driver; it has now been disabled, or the device was disconnected from the system, and the urb was submitted after the device was removed. It can also occur if the configuration was changed for the device, while the urb was submitted to the device.

Generally, the error values -EPROTO, -EILSEQ, and -EOVERFLOW indicate hardware problems with the device, the device firmware, or the cable connecting the device to the computer.


ohci之usb_submit_urb 一

usb控制器与usb设备之间是通过urb结构来传递数据,urb是usb通信基础。          驱动在使用urb之前要先通过usb_alloc_urb来创建struct urb结构,并通过usb...
  • fanqipin
  • fanqipin
  • 2012年12月07日 10:55
  • 4284


大家常说,一个设备通常有多个配置,配置通常有多个接口,接口通常有多个端点。接口代表逻辑上的设备,比如声卡分为 录音和播放。访问设备时,访问的是某个接口(逻辑设备)。除了端点0之外,每个端点只支持一个传...
  • lizuobin2
  • lizuobin2
  • 2016年07月19日 11:44
  • 1964

USB 驱动程序介绍(一)

 vv    USB 底层驱动程序:USB 底层驱动程序由操作系统提供,它位于 USB 功能驱动程序的下面,负责与实际的硬件打交道,实现繁琐的底层通信。     USB 功能驱动程序:USB 功能驱动...
  • mannhello
  • mannhello
  • 2009年09月02日 13:02
  • 2824

urb status

int status     When the urb is finished, or being processed by the USB core, this variable is set ...
  • wind_rabbit
  • wind_rabbit
  • 2012年11月17日 18:44
  • 659

USB 的 Urb

linux 内核中的 USB 代码和所有的 USB 设备通讯使用称为 urb 的东西( USB request block). 这个请求块用 struct urb 结构描述并且可在 include/l...
  • kaizi318
  • kaizi318
  • 2012年09月19日 14:57
  • 6913

Linux那些事儿 之 戏说USB(27)设备的生命线(六)

  • fudan_abc
  • fudan_abc
  • 2007年10月15日 09:01
  • 4356


1、分配和初始化URB static int myuvc_alloc_init_urbs(void) { u16 psize; u32 size;     int npackets;     int ...
  • qingkongyeyue
  • qingkongyeyue
  • 2017年01月18日 18:10
  • 699

bus hound截获的urb数据分析~~

在网上找了N圈,都没发现能解释里面的urb数据的,或者就是跟你说去看usb协议,usb协议里面根本没有~~我们在这边截获到的urb是windows平台下的,要去看windows里面的urb结构~  比...
  • QQ276592716
  • QQ276592716
  • 2011年07月28日 14:42
  • 3190

RK3288 nonzero urb status received: -71

RK3288使用了两个触摸屏后出现了下面的报错现象。 [ 1322.685854] usb 3-1.2.1: hanwang_irq - nonzero urb status received: -7...
  • zmnqazqaz
  • zmnqazqaz
  • 2016年05月15日 22:43
  • 1352

Linux USB驱动中URB的使用

 usb_alloc_urbusb_free_urb分配和释放urb的填充:    写明urb的类型,可以是ctrl、bulk、int和iso。    填入回调函数。usb_submit_urbusb...
  • walkingman321
  • walkingman321
  • 2008年03月09日 23:34
  • 1461