Bug 4052 - EHCI (USB2) not working
Summary: EHCI (USB2) not working
Status: RESOLVED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: USB (show other bugs)
Hardware: i386 Linux
: P2 high
Assignee: Greg Kroah-Hartman
URL:
Keywords:
: 4093 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-01-16 15:24 UTC by Christian Casteyde
Modified: 2005-02-27 08:08 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.10
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
lsusb output with device plugged in (8.34 KB, text/plain)
2005-01-16 15:25 UTC, Christian Casteyde
Details

Description Christian Casteyde 2005-01-16 15:24:24 UTC
Distribution: Slackware 10 + Kernel 2.6.10   
Hardware Environment:   
Athlon64 + nForce3 chipset   
lspci output :   
00:02.0 USB Controller: nVidia Corporation nForce3 USB 1.1 (rev a5)   
00:02.1 USB Controller: nVidia Corporation nForce3 USB 1.1 (rev a5)   
00:02.2 USB Controller: nVidia Corporation nForce3 USB 2.0 (rev a2)   
   
Software Environment: none   
Problem Description:   
I own a USB2 Wifi USB stick (DLink DWL-G122), which is recognized on a USB1 
host but rejected on the described hardware configuration. When it is plugged 
in, the following errors appear in kernel log (dmesg): 
usb 1-2: new high speed USB device using ehci_hcd and address 3  
usb 1-2: device descriptor read/64, error -71  
  
Then the device cannot be used. However, it appears in lsusb output (file 
attached). 
 
On ndiswrapper wiki, somebody reported that the device works if EHCI is 
disabled. I didn't tested this however (will do). 
   
Steps to reproduce:   
Plug-in an USB2 device on an EHCI host with kernel 2.6.10. 
May work for other device.
Comment 1 Christian Casteyde 2005-01-16 15:25:51 UTC
Created attachment 4421 [details]
lsusb output with device plugged in

The device appears on the bus. But it is impossible to access it.
Comment 2 Christian Casteyde 2005-01-19 14:27:07 UTC
OK, I've tested the device without EHCI (ie: with OHCI only in USB 1.1 mode), 
and it works perfectly (with ndiswrapper). 
 
It seems it's really a problem related to EHCI. 
 
Comment 3 Christof Musik 2005-01-22 04:36:39 UTC
Hi

I have the same problem on my Thinkpad T41p with my keyboard(cherry g-224) and
printer(kyocera 1010).
With the uhci-hcd everything is ok, but only usb 1.1.

I'm using gentoo-dev-sources-2.6.10-r6. The 2.6.9 have not this problem.

lspci:
0000:00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M)
USB UHCI Controller #1 (rev 01)
0000:00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M)
USB UHCI Controller #2 (rev 01)
0000:00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M)
USB UHCI Controller #3 (rev 01)
0000:00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI
Controller (rev 01)

dmesg:
drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 16 if 0 alt 0
proto 2 vid 0x0482 pid 0x0003
usb 1-1.3: new low speed USB device using ehci_hcd and address 17
usb 1-1.3: device descriptor read/64, error -32
usb 1-1.3: device descriptor read/64, error -32
usb 1-1.3: new low speed USB device using ehci_hcd and address 18
usb 1-1.3: device descriptor read/64, error -32
usb 1-1.3: device descriptor read/64, error -32
usb 1-1.3: new low speed USB device using ehci_hcd and address 19
usb 1-1.3: device not accepting address 19, error -32
usb 1-1.3: new low speed USB device using ehci_hcd and address 20
usb 1-1.3: device not accepting address 20, error -32

Comment 4 Sergey A. Sukiyazov 2005-01-24 05:23:29 UTC
try define thise line

options usbcore use_both_schemes=yes

in your /etc/modules.conf
Comment 5 Ante Karamatic 2005-01-24 09:13:13 UTC
*** Bug 4093 has been marked as a duplicate of this bug. ***
Comment 6 Ante Karamatic 2005-01-24 09:27:14 UTC
It is related only to EHCI. Same stick works on 2.6.9 (USB2), but doesn't on
2.6.10-2.6.11-rc2. Acctually, sometimes it works, sometimes it doesn't. I
reproduced error with 2 or 3 different sticks. U can change kernel version to
2.6.10 - 2.6.11-rc2
Comment 7 Christian Casteyde 2005-02-05 06:18:02 UTC
Tried with and without use_both_scheme on 2.6.11-rc3, it still fails with the 
following errors in dmesg : 
usb 1-4: new high speed USB device using ehci_hcd and address 4 
usb 1-4: device descriptor read/64, error -71 
 
lsusb and lspci are unchanged. 
 
Please note that I do not use usbcore as a module, it is compiled in and I 
booted with the usbcore.use_both_scheme=1 kernel parameter in grub to check the 
alternate scheme. 
This problem is indeed EHCI specific. 
Comment 8 Ante Karamatic 2005-02-05 07:34:16 UTC
Maybe it's time to raise severity to high? Couse another kernel will go out with
broken USB2. As I see, it doesn't work on nVidia and Intel 82801DB/DBM chipsets.
Comment 9 Christian Casteyde 2005-02-05 08:56:59 UTC
Raised to high.  
However this is not critical, since USB 1.1 works and 2.6.11-pre3 seems pretty  
stable IMHO.  
Comment 10 Ante Karamatic 2005-02-14 03:19:25 UTC
2.6.11-rc4 has the same bug... I don't get it... We should look at Changelog of
2.6.10. 2.6.9 wasn't broken :(
Comment 11 Ante Karamatic 2005-02-14 03:55:00 UTC
It works if u compile usbcore and rest of USB as modul. Next step u have to do
is load usbcore with parametar old_scheme_first=1;

modprobe usbcore old_scheme_first=1 && modprobe ehci_hcd

Then it works.

Is the "new_scheme" broken?
Comment 12 Christian Casteyde 2005-02-14 10:21:20 UTC
I didn't managed to link kernel rc4, so I didn't checked it. 
 
However, what is the the difference between module and in kernel USB support ? 
The scheme selection option I passed to kernel via command line should do the 
same as the module option. 
 
If that proves true, the initialization process is not the same if EHCI and 
Core are in kernel (obviously, there are both in kernel at boot and you load 
first core with module). That may be a difference, but I'm not quite convinced. 
It would be better to retry, as soon as 2.6.11 is out I check both in kernel 
and module ways. 
 
Comment 13 Ante Karamatic 2005-02-14 10:33:35 UTC
Well, you didn't append old_scheme_first=1, but use_both_scheme. These are not
the same...
Comment 14 Christian Casteyde 2005-02-14 13:36:15 UTC
Oops, sorry. I didn't pay enough attention to the previous post. 
I cannot test my device for now, I do not have it this week. 
I'll redo my tests this WE. 
 
Comment 15 Greg Kroah-Hartman 2005-02-17 08:49:07 UTC
If this does not work for you, please reopen the bug.
Comment 16 Christian Casteyde 2005-02-24 15:03:48 UTC
Seems to work with -rc5 without any boot parameter. 
However ndiswrapper doesn't manage to make the windows driver work and the 
device loops in reset. I suspect the windows driver however, since many people 
reported it works only in USB1 even for older kernels. Will try with other 
drivers later. 
As far as linux is concerned, it seems to accept the device and give it an 
address now. 
Best regards, 
CC 
Comment 17 Christian Casteyde 2005-02-27 01:39:08 UTC
Well, I did a more complete test today, and my device still does not work. 
I do not know however if it is linux fault or ndiswrapper fault, so I do not 
know if I should reopen this bug... 
 
When I plug the device, whatever option I use for usbcore, the device is now 
correctly detected, but ndiswrapper loops trying to reset the device ad vitam 
eternam (ie : until I unplug the device). It used to work in USB 1 mode. 
 
Some people encountered the same problem with previous kernel releases, so I 
suspect a windows/ndiswrapper bug and I leave the bug closed. I do not have 
other USB2 device and cannot test further. 
 
Comment 18 Christian Casteyde 2005-02-27 08:08:02 UTC
Tested with an USB2 usbnet device, it works. 
This is definitively a ndiswrapper/windows driver bug now. 
 
Thanks 
 

Note You need to log in before you can comment on or make changes to this bug.