Bug 1512

Summary: USB flash memory stick not recognized.
Product: Drivers Reporter: peturr02
Component: USBAssignee: Greg Kroah-Hartman (greg)
Status: REJECTED INSUFFICIENT_DATA    
Severity: normal CC: zaitcev
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.0-test9 Subsystem:
Regression: --- Bisected commit-id:
Attachments: dmesg output from 2.6.0-test9
dmesg output from Red Hat's 2.4.20-8
/proc/bus/usb/drivers from 2.4.20-8
/proc/bus/usb/devices from 2.4.20-8
/proc/bus/usb/001/001 from 2.4.20-8
/proc/bus/usb/001/002 from 2.4.20-8
/proc/bus/usb/001/003 from 2.4.20-8
.config for building 2.6.0-test9
dmesg output after device was mounted on 2.6.5

Description peturr02 2003-11-08 06:58:01 UTC
Distribution: Red Hat 9
Hardware Environment:
CPU: 500 MHz Pentium III. Motherboard: AOpen AX6BC.
Chipset: Intel 400BX, Intel PIIX4E. Two USB 1.1 connectors.
Software Environment:
Problem Description:
I can't mount my USB flash memory stick with Linux 2.6.0-test9. The stick
can be read by both Linux 2.4.20-8 (from Red Hat) and Windows XP, so it
doesn't seem like a hardware problem.

The USB stick is from Super Talent Flash Inc., with 256 MB capacity.
There are two chips on the stick, one labeled

  PL-2515
  03272D

and the other

  SAMSUNG     331
  K9K2G08UOM-YCB0


Steps to reproduce:
Plug stick in USB plug.
mount /mnt/usb
Comment 1 peturr02 2003-11-08 07:00:05 UTC
Created attachment 1395 [details]
dmesg output from 2.6.0-test9

This stuff appears only after the stick is plugged in:

drivers/usb/host/uhci-hcd.c: 9000: wakeup_hc
hub 1-0:1.0: port 2, status 101, change 1, 12 Mb/s
hub 1-0:1.0: debounce: port 2: delay 100ms stable 4 status 0x101
hub 1-0:1.0: port 2 not reset yet, waiting 50ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not enabled, trying reset again...
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not enabled, trying reset again...
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not enabled, trying reset again...
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not enabled, trying reset again...
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not reset yet, waiting 200ms
hub 1-0:1.0: port 2 not enabled, trying reset again...
hub 1-0:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
Comment 2 peturr02 2003-11-08 07:00:53 UTC
Created attachment 1396 [details]
dmesg output from Red Hat's 2.4.20-8
Comment 3 peturr02 2003-11-08 07:01:56 UTC
Created attachment 1397 [details]
/proc/bus/usb/drivers from 2.4.20-8
Comment 4 peturr02 2003-11-08 07:02:42 UTC
Created attachment 1398 [details]
/proc/bus/usb/devices from 2.4.20-8
Comment 5 peturr02 2003-11-08 07:03:09 UTC
Created attachment 1399 [details]
/proc/bus/usb/001/001 from 2.4.20-8
Comment 6 peturr02 2003-11-08 07:03:47 UTC
Created attachment 1400 [details]
/proc/bus/usb/001/002 from 2.4.20-8
Comment 7 peturr02 2003-11-08 07:04:29 UTC
Created attachment 1401 [details]
/proc/bus/usb/001/003 from 2.4.20-8
Comment 8 peturr02 2003-11-09 07:28:11 UTC
Created attachment 1404 [details]
.config for building 2.6.0-test9
Comment 9 Matthew Dharm 2003-12-14 01:33:30 UTC
This is not a usb-storage problem -- the HCD isn't properly enumerating the
device, which occurs before the usb-storage driver ever gets involved in the
process.
Comment 10 Greg Kroah-Hartman 2004-01-09 11:51:16 UTC
Sounds like you have a flaky device :(

Does 2.6.1 help any?
How about 2.4.23 from kernel.org?
Comment 11 peturr02 2004-01-13 01:54:21 UTC
> Does 2.6.1 help any?
> How about 2.4.23 from kernel.org?

Works fine with 2.4.22 from kernel.org, and 2.4.22 from Fedora Core 1.
Doesn't work with 2.6.1.
Comment 12 peturr02 2004-01-30 02:26:22 UTC
I have done some more checking:

2.4.10, 2.4.24, 2.5.10 and 2.5.20 all recognize the device correctly.

The
hub 1-0:1.0: Cannot enable port 2.  Maybe the USB cable is bad?
message appears on 2.5.30 and 2.5.44
Comment 13 Greg Kroah-Hartman 2004-04-29 12:34:12 UTC
This error means that the device is not being recognized in the proper ammount
of time as specified by the USB spec (actually, we wait for longer than is
specified from what I remember.)

To see if this is the case, can you change the line in the file
drivers/usb/core/hub.c from:
#define HUB_RESET_TIMEOUT       500

To a much bigger number?  Something like:
#define HUB_RESET_TIMEOUT       1000

at least.  If that still doesn't work, try increasing the number until the error
message changes (hopefully it will.)

Let us know what happens for your device.
Comment 14 peturr02 2004-05-02 04:02:43 UTC
> #define HUB_RESET_TIMEOUT       1000

This didn't help, but after I set it to 2000, I am able to mount the device
without problems.
Comment 15 peturr02 2004-05-02 04:04:44 UTC
Created attachment 2771 [details]
dmesg output after device was mounted on 2.6.5
Comment 16 Greg Kroah-Hartman 2004-07-07 17:04:12 UTC
Ok, can you try the latest 2.6.7-mm tree?  That might help this.
Comment 17 peturr02 2004-07-19 02:20:50 UTC
Vanilla 2.6.7 mostly works. Sometimes it fails, but unplugging the device and
plugging it in again is usually enough. Changing HUB_RESET_TIMEOUT no longer
helps.

2.6.7-mm7 seems a bit better, but still fails occasionally.

2.6.6 from Fedora Core 2 doesn't work.

2.6.6 and 2.6.7 both work fine on a Dell Optiplex GX240.
Comment 18 Greg Kroah-Hartman 2004-11-10 14:45:12 UTC
How about 2.6.10-rc1?  Does this work for you?

If not, please reopen.