Skip to contentSkip to conversation

Crappy USBkeys

U-Boot-Users Rodolfo Giometti 1 participant 2 messages Mar 30, 2007

lore
Share & tools
lore
#0 lore raw

Hello,

using new USB support from USB-testing branch on a PXA270 based board I noticed that some crappy USBkeys give the following error:

New Device 1
usb_control_msg: request: 0x6, requesttype: 0x80
value 0x100 index 0x0 length 0x8
INFO: submit_control_msg
DEBUG: SUB URB:[ 754] dev: 0,ep: 0-I,type:CTRL,len:0/8 stat:0x80000000
DEBUG: SUB URB:[ 75a] dev: 0,ep: 0-I,type:CTRL,len:0/8 stat:0x80000000
ERROR: sohci_submit_job: URB NOT FINISHED
ERROR: sohci_submit_job failed

USB device not responding, giving up (status=80000000)

It seems they cannot send their descriptor... has someone noticed the same behaviour?

Thanks,

Rodolfo

Signature · 4 lines
GNU/Linux Solutions                  e-mail:    giometti at enneenne.com
Linux Device Driver                             giometti at gnudd.com
Embedded Systems                     		giometti at linux.it
UNIX programming                     phone:     +39 349 2432127
#1 lore raw
Quoted 14 lines · Rodolfo Giometti

Hello,

using new USB support from USB-testing branch on a PXA270 based board I noticed that some crappy USBkeys give the following error:

New Device 1
usb_control_msg: request: 0x6, requesttype: 0x80
value 0x100 index 0x0 length 0x8
INFO: submit_control_msg
DEBUG: SUB URB:[ 754] dev: 0,ep: 0-I,type:CTRL,len:0/8 stat:0x80000000
DEBUG: SUB URB:[ 75a] dev: 0,ep: 0-I,type:CTRL,len:0/8 stat:0x80000000
ERROR: sohci_submit_job: URB NOT FINISHED
ERROR: sohci_submit_job failed

Quoted 4 lines

USB device not responding, giving up (status=80000000)

It seems they cannot send their descriptor... has someone noticed the same behaviour?

That's strange... just disabling all debugging messages and adding this patch:

drivers/usb_ohci.c +3 -1
index c5e4c38..f381c40 100644
@@ -1178,7 +1178,9 @@ pkt_print(dev, pipe, buffer, transfer_len, cmd, "SUB(rh)",                                            WR_RH_PORTSTAT (RH_PS_PRS);
                                        OK (0);
                        case (RH_PORT_POWER):
-                                       WR_RH_PORTSTAT (RH_PS_PPS ); OK (0);
+                                       WR_RH_PORTSTAT (RH_PS_PPS );
+                                       wait_ms(100);
+                                       OK (0);
                        case (RH_PORT_ENABLE): /* BUG IN HUP CODE *********/
                                        if (RD_RH_PORTSTAT & RH_PS_CCS)
                                            WR_RH_PORTSTAT (RH_PS_PES );
 

my crappy USBkey works well! But enabling debugging messages (__only__ into file usb_ohci.c) both good and crappy keys caused the above error!

The above patch allow crappy keys to be enumerated at boot time.

In fact without the patch I get on some (crappy) keys:

wl1100> usb start
(Re)start USB...
USB: scanning bus for devices... 1 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found

while with the patch I get:

wl1100> usb start
(Re)start USB...
USB: scanning bus for devices... 2 USB Device(s) found
scanning bus for storage devices... 1 Storage Device(s) found

Ciao,

Rodolfo

P.S. Please, consider that I still have my patch on USB support:

common/usb.c +1 -1
index 0857494..087a65f 100644
@@ -61,7 +61,7 @@
 #ifdef USB_DEBUG
 #define        USB_PRINTF(fmt,args...) printf (fmt ,##args)
 #else
-#define USB_PRINTF(fmt,args...)
+#define USB_PRINTF(fmt,args...)        wait_ms(1) /* for crappy USB keys... */
 #endif
 
 #define USB_BUFSIZ     512

and I set USB_DEBUG undefined.

Signature · 4 lines
GNU/Linux Solutions                  e-mail:    giometti at enneenne.com
Linux Device Driver                             giometti at gnudd.com
Embedded Systems                     		giometti at linux.it
UNIX programming                     phone:     +39 349 2432127