public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* USB EHCI Problem with Low Speed Devices on kernel 2.6.11+
@ 2005-08-27 13:43 Dominik Wezel
  2005-08-28 23:16 ` James Courtier-Dutton
  0 siblings, 1 reply; 6+ messages in thread
From: Dominik Wezel @ 2005-08-27 13:43 UTC (permalink / raw)
  To: linux-kernel

Hi folks

Looks like something the list has seen before, but I actually ran out of 
  ideas even after seeing about everything google, yahoo and the kernel 
majordomo had to offer as advice ...

Hardware
========
- IBM Thinkpad T40
- Targus PAUH212 USB 2.0 HUB 7 Ports connected to Laptop
- USB Keyboard/Mouse (any do, i.e. any cause same problem) connected to hub

Kernel
======
- 2.6.8, 2.6.11.10 and 2.6.12.4, all show same problem

Distro
======
- debian sarge
- using hotplug and udev

Problem
=======
When turning on the laptop and during POST and GrUB loading, all ports 
on the hub are enabled.  During the USB initialization phase, when the 
hub is detected, shortly all ports become disabled, then turn on again 
(uhci_hcd detects the lo-speed ports).  Upon initialization of ehci_hcd 
however, the ports are disconnected again (for good):

---8<----
Aug 27 14:29:50 solaris kernel: ehci_hcd 0000:00:1d.7: USB 2.0 
initialized, EHCI 1.00, driver 10 Dec 2004
Aug 27 14:29:50 solaris kernel: hub 4-0:1.0: USB hub found
Aug 27 14:29:50 solaris kernel: hub 4-0:1.0: 6 ports detected
Aug 27 14:29:50 solaris kernel: usb 2-1: USB disconnect, address 2
Aug 27 14:29:50 solaris kernel: usb 2-1.5: USB disconnect, address 3
Aug 27 14:29:50 solaris kernel: usb 2-1.6: USB disconnect, address 4
---8<----

Addresses 2, 3 and 4 are a keyboard, mouse and palm sync cable respectively.

and afterwards the log becomes cluttered with:

---8<----
Aug 27 14:30:31 solaris kernel: usb 4-3: new high speed USB device using 
ehci_hcd and address 79
Aug 27 14:30:31 solaris kernel: usb 4-3: device not accepting address 
79, error -71
Aug 27 14:30:32 solaris kernel: usb 4-3: new high speed USB device using 
ehci_hcd and address 81
Aug 27 14:30:32 solaris kernel: usb 4-3: device not accepting address 
81, error -71
Aug 27 14:30:33 solaris kernel: usb 4-3: new high speed USB device using 
ehci_hcd and address 86
Aug 27 14:30:34 solaris kernel: usb 4-3: device not accepting address 
86, error -71
Aug 27 14:30:34 solaris kernel: usb 4-3: new high speed USB device using 
ehci_hcd and address 89
Aug 27 14:30:35 solaris kernel: usb 4-3: device not accepting address 
89, error -71
Aug 27 14:30:35 solaris kernel: usb 4-3: new high speed USB device using 
ehci_hcd and address 90
Aug 27 14:30:35 solaris kernel: usb 4-3: device not accepting address 
90, error -71
---8<----

first address to be assigned was 30 in all logs, but the number raises 
mostly in increments of 2 till about 120, then restarts with 12.

Interestlingly, the keyboard and mouse have been detected immediately 
before the intialization of ehcihcd:

---8<---
Aug 27 14:29:50 solaris kernel: uhci_hcd 0000:00:1d.2: Intel Corp. 
82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3
Aug 27 14:29:50 solaris kernel: PCI: Setting latency timer of device 
0000:00:1d.2 to 64
Aug 27 14:29:50 solaris kernel: uhci_hcd 0000:00:1d.2: irq 11, io base 
0x1840
Aug 27 14:29:50 solaris kernel: uhci_hcd 0000:00:1d.2: new USB bus 
registered, assigned bus number 3
Aug 27 14:29:50 solaris kernel: hub 3-0:1.0: USB hub found
Aug 27 14:29:50 solaris kernel: hub 3-0:1.0: 2 ports detected
/* These are the 2 ports on the laptop */
Aug 27 14:29:50 solaris kernel: usb 2-1: new full speed USB device using 
uhci_hcd and address 2
Aug 27 14:29:50 solaris kernel: hub 2-1:1.0: USB hub found
Aug 27 14:29:50 solaris kernel: hub 2-1:1.0: 7 ports detected
/* These are the 7 ports of the external hub */
Aug 27 14:29:50 solaris kernel: usb 2-1.5: new low speed USB device 
using uhci_hcd and address 3
Aug 27 14:29:50 solaris kernel: usb 2-1.6: new low speed USB device 
using uhci_hcd and address 4
Aug 27 14:29:50 solaris kernel: usbcore: registered new driver hiddev
Aug 27 14:29:50 solaris kernel: input: USB HID v1.10 Mouse [Logitech 
Trackball] on usb-0000:00:1d.1-1.5
Aug 27 14:29:50 solaris kernel: input: USB HID v1.10 Keyboard [CHICONY 
USB Keyboard] on usb-0000:00:1d.1-1.6
Aug 27 14:29:50 solaris kernel: input,hiddev96: USB HID v1.10 Device 
[CHICONY USB Keyboard] on usb-0000:00:1d.1-1.6
Aug 27 14:29:50 solaris kernel: usbcore: registered new driver usbhid
Aug 27 14:29:50 solaris kernel: drivers/usb/input/hid-core.c: v2.0:USB 
HID core driver
---8<---

which means the ehci_hcd has afterwards superseded uhci_hcd.

Even more interestingly: in about 5% of the boot cases, ehci_hcd manages 
to detect the ports correctly (or at least doesn't interfere with uhci). 
  I can then use both low-speed and hi-speed devices for a variable 
amount of time (spanning 20 minutes up to 8 hours), after which the 
ports suddenly go down.  Rebooting however falls (in 19 of 20 cases) 
outside of the 5%, and I'm lost again (fortunately the internal keyboard 
and mouse always work, so at least I /can/ reboot).

Measures taken
==============
I've found an article suggesting to
         echo Y > /sys/module/usbcore/parameters/old_scheme_first
which I've done.  Interestingly, when turning the parameter to 'Y' and 
then pluggin the hub out and in, all ports come on. Unfortunately this 
doesn't work once the setting is done in the boot process 
(/etc/init.d/local).
---
I've also found articles suggesting to throw away the hub and get 
another one, which of course I can't take plain seriously, because now I 
know the problem of this hub, and I'm not going to change it for a hub 
whose problem I even don't know yet... =;)
---
Of course, I've also tried a kernel with ehci_hcd disabled.  This works 
fine for the keyboard and mouse now, as long as I don't use any 
high-speed devices, such as the palm sync, which doesn't work any more 
in this setup (neither when plugged in the hub nor when plugged in the 
laptop [root hub]).

Measures not taken
==================
I didn't test the hub on Microsoft Windows, because I assume that 
wouldn't add to the solution space, since the problem is clearly located 
in the uhci_hcd vs. ehci_hcd domain of the linux kernel, as the hub is 
fully functional (within the lo speed scope) when used with only uhci.

Thanks for any ideas or suggestions!

--

Dominik Wezel
Systems Engineer


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: USB EHCI Problem with Low Speed Devices on kernel 2.6.11+
       [not found] <mailman.1125150481.18996.linux-kernel2news@redhat.com>
@ 2005-08-27 17:21 ` Pete Zaitcev
  0 siblings, 0 replies; 6+ messages in thread
From: Pete Zaitcev @ 2005-08-27 17:21 UTC (permalink / raw)
  To: Dominik Wezel; +Cc: linux-kernel, linux-usb-devel

On Sat, 27 Aug 2005 15:43:11 +0200, Dominik Wezel <dio@qwasartech.com> wrote:

Forwarding to linux-usb-devel with comments.

> Kernel
> ======
> - 2.6.8, 2.6.11.10 and 2.6.12.4, all show same problem

> Problem
> =======
> When turning on the laptop and during POST and GrUB loading, all ports 
> on the hub are enabled.  During the USB initialization phase, when the 
> hub is detected, shortly all ports become disabled, then turn on again 
> (uhci_hcd detects the lo-speed ports).  Upon initialization of ehci_hcd 
> however, the ports are disconnected again (for good):
> 
> ---8<----
> Aug 27 14:29:50 solaris kernel: ehci_hcd 0000:00:1d.7: USB 2.0 
> initialized, EHCI 1.00, driver 10 Dec 2004
> Aug 27 14:29:50 solaris kernel: hub 4-0:1.0: USB hub found
> Aug 27 14:29:50 solaris kernel: hub 4-0:1.0: 6 ports detected
> Aug 27 14:29:50 solaris kernel: usb 2-1: USB disconnect, address 2
> Aug 27 14:29:50 solaris kernel: usb 2-1.5: USB disconnect, address 3
> Aug 27 14:29:50 solaris kernel: usb 2-1.6: USB disconnect, address 4
> ---8<----
> 
> Addresses 2, 3 and 4 are a keyboard, mouse and palm sync cable respectively.
> 
> and afterwards the log becomes cluttered with:
> 
> ---8<----
> Aug 27 14:30:31 solaris kernel: usb 4-3: new high speed USB device using 
> ehci_hcd and address 79
> Aug 27 14:30:31 solaris kernel: usb 4-3: device not accepting address 
> 79, error -71
> Aug 27 14:30:32 solaris kernel: usb 4-3: new high speed USB device using 
> ehci_hcd and address 81
> Aug 27 14:30:32 solaris kernel: usb 4-3: device not accepting address 
> 81, error -71
> Aug 27 14:30:33 solaris kernel: usb 4-3: new high speed USB device using 
> ehci_hcd and address 86
> Aug 27 14:30:34 solaris kernel: usb 4-3: device not accepting address 
> 86, error -71
> Aug 27 14:30:34 solaris kernel: usb 4-3: new high speed USB device using 
> ehci_hcd and address 89
> Aug 27 14:30:35 solaris kernel: usb 4-3: device not accepting address 
> 89, error -71
> Aug 27 14:30:35 solaris kernel: usb 4-3: new high speed USB device using 
> ehci_hcd and address 90
> Aug 27 14:30:35 solaris kernel: usb 4-3: device not accepting address 
> 90, error -71
> ---8<----
> 
> first address to be assigned was 30 in all logs, but the number raises 
> mostly in increments of 2 till about 120, then restarts with 12.
> 
> Interestlingly, the keyboard and mouse have been detected immediately 
> before the intialization of ehcihcd:
> 
> ---8<---
> Aug 27 14:29:50 solaris kernel: uhci_hcd 0000:00:1d.2: Intel Corp. 
> 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3
> Aug 27 14:29:50 solaris kernel: PCI: Setting latency timer of device 
> 0000:00:1d.2 to 64
> Aug 27 14:29:50 solaris kernel: uhci_hcd 0000:00:1d.2: irq 11, io base 
> 0x1840
> Aug 27 14:29:50 solaris kernel: uhci_hcd 0000:00:1d.2: new USB bus 
> registered, assigned bus number 3
> Aug 27 14:29:50 solaris kernel: hub 3-0:1.0: USB hub found
> Aug 27 14:29:50 solaris kernel: hub 3-0:1.0: 2 ports detected
> /* These are the 2 ports on the laptop */
> Aug 27 14:29:50 solaris kernel: usb 2-1: new full speed USB device using 
> uhci_hcd and address 2
> Aug 27 14:29:50 solaris kernel: hub 2-1:1.0: USB hub found
> Aug 27 14:29:50 solaris kernel: hub 2-1:1.0: 7 ports detected
> /* These are the 7 ports of the external hub */
> Aug 27 14:29:50 solaris kernel: usb 2-1.5: new low speed USB device 
> using uhci_hcd and address 3
> Aug 27 14:29:50 solaris kernel: usb 2-1.6: new low speed USB device 
> using uhci_hcd and address 4
> Aug 27 14:29:50 solaris kernel: usbcore: registered new driver hiddev
> Aug 27 14:29:50 solaris kernel: input: USB HID v1.10 Mouse [Logitech 
> Trackball] on usb-0000:00:1d.1-1.5
> Aug 27 14:29:50 solaris kernel: input: USB HID v1.10 Keyboard [CHICONY 
> USB Keyboard] on usb-0000:00:1d.1-1.6
> Aug 27 14:29:50 solaris kernel: input,hiddev96: USB HID v1.10 Device 
> [CHICONY USB Keyboard] on usb-0000:00:1d.1-1.6
> Aug 27 14:29:50 solaris kernel: usbcore: registered new driver usbhid
> Aug 27 14:29:50 solaris kernel: drivers/usb/input/hid-core.c: v2.0:USB 
> HID core driver
> ---8<---
> 
> which means the ehci_hcd has afterwards superseded uhci_hcd.
> 
> Even more interestingly: in about 5% of the boot cases, ehci_hcd manages 
> to detect the ports correctly (or at least doesn't interfere with uhci). 

Curious.

> Measures taken
> ==============
> I've found an article suggesting to
>          echo Y > /sys/module/usbcore/parameters/old_scheme_first

Very funny.

> ---
> I've also found articles suggesting to throw away the hub and get 
> another one, which of course I can't take plain seriously, because now I 
> know the problem of this hub, and I'm not going to change it for a hub 
> whose problem I even don't know yet... =;)

Borrow one for testing.

Also, plug Palm directly into computer. Surely it has more than one
USB connector.

> Measures not taken
> ==================
> I didn't test the hub on Microsoft Windows, because I assume that 
> wouldn't add to the solution space, since the problem is clearly located 
> in the uhci_hcd vs. ehci_hcd domain of the linux kernel, as the hub is 
> fully functional (within the lo speed scope) when used with only uhci.

Actually, I suspected that this may be a poorly working Transaction
Tranlating (TT) hub. Which then may work on certain versions of
Windows.

-- Pete

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: USB EHCI Problem with Low Speed Devices on kernel 2.6.11+
  2005-08-27 13:43 USB EHCI Problem with Low Speed Devices on kernel 2.6.11+ Dominik Wezel
@ 2005-08-28 23:16 ` James Courtier-Dutton
  2005-08-29  5:28   ` Jan De Luyck
  2005-08-29  7:53   ` Oliver Neukum
  0 siblings, 2 replies; 6+ messages in thread
From: James Courtier-Dutton @ 2005-08-28 23:16 UTC (permalink / raw)
  To: Dominik Wezel; +Cc: linux-kernel

Dominik Wezel wrote:
> Problem
> =======
> When turning on the laptop and during POST and GrUB loading, all ports 
> on the hub are enabled.  During the USB initialization phase, when the 
> hub is detected, shortly all ports become disabled, then turn on again 
> (uhci_hcd detects the lo-speed ports).  Upon initialization of ehci_hcd 
> however, the ports are disconnected again (for good):
> 

Use uhci_hcd or ehci_hcd, but never both at the same time.
ehci_hcd will work with all lo-speed ports, so uhci_hcd is then no needed.

James


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: USB EHCI Problem with Low Speed Devices on kernel 2.6.11+
  2005-08-28 23:16 ` James Courtier-Dutton
@ 2005-08-29  5:28   ` Jan De Luyck
  2005-08-29 14:39     ` Randy.Dunlap
  2005-08-29  7:53   ` Oliver Neukum
  1 sibling, 1 reply; 6+ messages in thread
From: Jan De Luyck @ 2005-08-29  5:28 UTC (permalink / raw)
  To: linux-kernel; +Cc: James Courtier-Dutton, Dominik Wezel

On Monday 29 August 2005 01:16, James Courtier-Dutton wrote:
> Dominik Wezel wrote:
> > Problem
> > =======
> > When turning on the laptop and during POST and GrUB loading, all ports
> > on the hub are enabled.  During the USB initialization phase, when the
> > hub is detected, shortly all ports become disabled, then turn on again
> > (uhci_hcd detects the lo-speed ports).  Upon initialization of ehci_hcd
> > however, the ports are disconnected again (for good):
>
> Use uhci_hcd or ehci_hcd, but never both at the same time.
> ehci_hcd will work with all lo-speed ports, so uhci_hcd is then no needed.

This seems to be in contrast with what hotplug does automatically: it loads 
both ehci_hcd and uhci_hcd here. If I don't load uhci_hcd, lo-speed devices 
do not work.

Jan

-- 
A grammarian's life is always in tense.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: USB EHCI Problem with Low Speed Devices on kernel 2.6.11+
  2005-08-28 23:16 ` James Courtier-Dutton
  2005-08-29  5:28   ` Jan De Luyck
@ 2005-08-29  7:53   ` Oliver Neukum
  1 sibling, 0 replies; 6+ messages in thread
From: Oliver Neukum @ 2005-08-29  7:53 UTC (permalink / raw)
  To: James Courtier-Dutton; +Cc: Dominik Wezel, linux-kernel



On Mon, 29 Aug 2005, James Courtier-Dutton wrote:

> Dominik Wezel wrote:
> > Problem
> > =======
> > When turning on the laptop and during POST and GrUB loading, all ports on
> > the hub are enabled.  During the USB initialization phase, when the hub is
> > detected, shortly all ports become disabled, then turn on again (uhci_hcd
> > detects the lo-speed ports).  Upon initialization of ehci_hcd however, the
> > ports are disconnected again (for good):
> > 
> 
> Use uhci_hcd or ehci_hcd, but never both at the same time.
> ehci_hcd will work with all lo-speed ports, so uhci_hcd is then no needed.

What? UHCI is stand alone. EHCI will work only with high speed devices
(that includes low and full speed on a high speed hub, but not directly 
connected devices)

	Regards
		Oliver


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: USB EHCI Problem with Low Speed Devices on kernel 2.6.11+
  2005-08-29  5:28   ` Jan De Luyck
@ 2005-08-29 14:39     ` Randy.Dunlap
  0 siblings, 0 replies; 6+ messages in thread
From: Randy.Dunlap @ 2005-08-29 14:39 UTC (permalink / raw)
  To: Jan De Luyck; +Cc: linux-kernel, James Courtier-Dutton, Dominik Wezel

On Mon, 29 Aug 2005, Jan De Luyck wrote:

> On Monday 29 August 2005 01:16, James Courtier-Dutton wrote:
> > Dominik Wezel wrote:
> > > Problem
> > > =======
> > > When turning on the laptop and during POST and GrUB loading, all ports
> > > on the hub are enabled.  During the USB initialization phase, when the
> > > hub is detected, shortly all ports become disabled, then turn on again
> > > (uhci_hcd detects the lo-speed ports).  Upon initialization of ehci_hcd
> > > however, the ports are disconnected again (for good):
> >
> > Use uhci_hcd or ehci_hcd, but never both at the same time.
> > ehci_hcd will work with all lo-speed ports, so uhci_hcd is then no needed.
>
> This seems to be in contrast with what hotplug does automatically: it loads
> both ehci_hcd and uhci_hcd here. If I don't load uhci_hcd, lo-speed devices
> do not work.

Right.  EHCI is high-speed only.  It needs a companion controller
and driver for low- and full-speed devices.

-- 
~Randy

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2005-08-29 14:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-27 13:43 USB EHCI Problem with Low Speed Devices on kernel 2.6.11+ Dominik Wezel
2005-08-28 23:16 ` James Courtier-Dutton
2005-08-29  5:28   ` Jan De Luyck
2005-08-29 14:39     ` Randy.Dunlap
2005-08-29  7:53   ` Oliver Neukum
     [not found] <mailman.1125150481.18996.linux-kernel2news@redhat.com>
2005-08-27 17:21 ` Pete Zaitcev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox