On Wed, 6 Sep 2006, Lisa Y. wrote: > Hi, > > I'm running testusb.c on the host and gadgetfs+usb.c on the device. > However testing seems to give "error 71". > > What does error 71 from the test mean? > What might be causing it, and is it fixable?
You can look up the meaning of these error numbers by a two-step process. First, find the symbolic string associated with the number, as listed in include/asm-generic/errno*.h. You'll see that 71 is EPROTO. Second, look at Documentation/usb/error-codes.txt. It lists the error strings used by the USB stack, together with the situations that can cause them. The entry for EPROTO says that it can be any of several low-level USB protocol errors. In general it means that the device did not respond when the host sent it a packet. The most likely cause is a bug in your device controller driver. > Thank you. > > Below are some additional details : > > ---------------------------- > Host side (linux 2.6.15): > ---------------------------- > > $ sudo ./testusb -D /proc/bus/usb/002/003 > unknown speed /proc/bus/usb/002/003 > /proc/bus/usb/002/003 test 0, 0.000006 secs > /proc/bus/usb/002/003 test 1 --> 71 (error 71) > /proc/bus/usb/002/003 test 2 --> 71 (error 71) > /proc/bus/usb/002/003 test 3 --> 71 (error 71) > /proc/bus/usb/002/003 test 4 --> 71 (error 71) > /proc/bus/usb/002/003 test 5 --> 71 (error 71) > /proc/bus/usb/002/003 test 6 --> 71 (error 71) > /proc/bus/usb/002/003 test 7 --> 71 (error 71) > /proc/bus/usb/002/003 test 8 --> 71 (error 71) > /proc/bus/usb/002/003 test 9, 0.753977 secs > /proc/bus/usb/002/003 test 10, 2.364921 secs > > Test 11 crashes the host (while the gadget is unaffected). Perhaps that has been fixed in a later kernel version. > $ ./usbtree > > /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M > /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M > /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M > |__ Port 1: Dev 2, If 0, Class=HID, Driver=usbhid, 1.5M > /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M > |__ Port 1: Dev 3, If 0, Class=vend., Driver=usbtest, 480M > /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M > > $ cat /proc/bus/usb/devices > > T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 > D: Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 > P: Vendor=0525 ProdID=a4a4 Rev= 2.12 > S: Manufacturer=Licensed to Code, LLC > S: > SerialNumber=ppkqalcfkru32i4p5awhwkbx5zjbye3gy2folohnbd3ulveiffqfblglzcmz3ykC:* > #Ifs= 1 Cfg#= 3 Atr=c0 MxPwr= 2mA > I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=usbtest > E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms > E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=125us > E: Ad=83(I) Atr=03(Int.) MxPS= 8 Ivl=4ms > > ---------------------------- > Host side (linux 2.6.11): > ---------------------------- > > > This is what I've added to the usb.c sample code (crosscompiled and ran > on the devce) to the autoconfig() function: > > > } else if (stat (DEVNAME = "amd5536udc", &statb) == 0) { > > HIGHSPEED = 1; > device_desc.bcdDevice = __constant_cpu_to_le16 (0x0212), > > fs_source_desc.bEndpointAddress = > hs_source_desc.bEndpointAddress > = USB_DIR_IN | 1; > EP_IN_NAME = "ep2in-bulk"; > fs_sink_desc.bEndpointAddress = hs_sink_desc.bEndpointAddress > = USB_DIR_OUT | 2; > EP_OUT_NAME = "ep2out-bulk"; > > source_sink_intf.bNumEndpoints = 3; > fs_status_desc.bEndpointAddress > = hs_status_desc.bEndpointAddress > = USB_DIR_IN | 3; <----------- what's the 1, 2 and 3 > for? > EP_STATUS_NAME = "ep1in-int"; > > } .... The 1, 2, and 3 above are the endpoint addresses. They are the values you see in the /proc/bus/usb/devices listing for the Ad: fields on the E: lines. (The 0x80 bit is USB_DIR_IN.) Alan Stern ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel