Re: [linux-usb-devel] ThinkPad T41 - Strange USB 2.0 behaviour

From: Alan Stern
Date: Fri Jun 08 2007 - 10:27:57 EST


On Fri, 8 Jun 2007, Jiri Kosina wrote:

> linux-usb-devel list added
>
> On Fri, 8 Jun 2007, Robert de Rooy wrote:
>
> > Jiri Kosina wrote:
> > > On Thu, 7 Jun 2007, Robert de Rooy wrote:
> > >
> > >
> > > > Yes I figured it was a hardware problem, but that was not really the point
> > > > I was trying to raise ;). I would like, if possible for Linux to
> > > > automatically fallback to USB 1.1 like Windows does (preferably with a
> > > > suitable warning).
> > > >
> > >
> > > What do you propose as a trigger for the kernel to fallback?
> > >
> > > You can work it around manually, just don't use ehci-hcd, can't you?
> > >
> > >
> > Yes I can unload ehci-hcd, but I have one USB 2.0 device that strangely enough
> > DOES work as such, and unloading ehci-hcd will cause that also to run at 1.1
> > speed.
> >
> > Clearly something is failing when plugging a device with ehci-hcd loaded, the
> > driver seems to keep retrying indefinitely. Instead it would be nice if after
> > a few tries it hands the device over to uhci-hcd. This seems to be the
> > behaviour under Windows, so I was wondering if Linux could be made to do
> > something similar.

Robert, it would help somewhat if you could build a kernel with
CONFIG_USB_DEBUG turned on and post the dmesg log showing what happens
when you plug in one of those non-working devices.

Yes, in principle Linux can be made to switch over to full speed when
high speed fails. But there are limitations: The switchover would work
only for devices plugged directly into the computer, not for devices
plugged into a high-speed hub. And some Linux systems (not regular
PCs) have EHCI implementations that don't allow such a switch -- or
if they do, I'm not aware of how to accomplish it.

BTW, depending on the kind of failure the system does not keep
retrying indefinitely. It gives up after four attempts.

Alan Stern

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/