Re: ThinkPad T41 - Strange USB 2.0 behaviour

Alan Stern <[email protected]>
Newsgroups gmane.linux.usb.devel,gmane.linux.kernel
Message-ID <[email protected]>
On Sun, 10 Jun 2007, Robert de Rooy wrote:

> Alan Stern wrote:
> > Unfortunately you posted the system log file instead of the dmesg log, 
> > and your syslogd was configured not to retain debug-level messages.
> >   
> Ok, I did not realize my syslog was filtering the debug-level messages, 
> here is the output from dmesg

> *** plugging device (leaving it in slightly to long, hence the long 
> log); removing the device; rmmod ehci-hcd; plug back in
> usb usb4: usb resume
> usb usb4: finish resume
> hub 4-0:1.0: hub_resume
> ehci_hcd 0000:00:1d.7: resume root hub
> hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0000
> ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001803 POWER sig=j CSC 
> CONNECT
> hub 4-0:1.0: port 4, status 0501, change 0001, 480 Mb/s
> hub 4-0:1.0: debounce: port 4: total 100ms stable 100ms status 0x501
> ehci_hcd 0000:00:1d.7: port 4 high speed
> ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001005 POWER sig=se0 PE 
> CONNECT
> usb 4-4: new high speed USB device using ehci_hcd and address 2
> ehci_hcd 0000:00:1d.7: devpath 4 ep0in 3strikes
> ehci_hcd 0000:00:1d.7: devpath 4 ep0in 3strikes
> ehci_hcd 0000:00:1d.7: devpath 4 ep0in 3strikes
> ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001002 POWER sig=se0 CSC
> hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0010
> hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0010
> ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001803 POWER sig=j CSC 
> CONNECT
> hub 4-0:1.0: port 4, status 0501, change 0001, 480 Mb/s
> hub 4-0:1.0: debounce: port 4: total 100ms stable 100ms status 0x501
> ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001002 POWER sig=se0 CSC
> hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0010
> hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0010
> ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001803 POWER sig=j CSC 
> CONNECT
> hub 4-0:1.0: port 4, status 0501, change 0001, 480 Mb/s
> hub 4-0:1.0: debounce: port 4: total 100ms stable 100ms status 0x501
> ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001002 POWER sig=se0 CSC
> hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0010
> hub 4-0:1.0: state 7 ports 6 chg 0000 evt 0010
> ehci_hcd 0000:00:1d.7: GetStatus port 4 status 001803 POWER sig=j CSC 
> CONNECT

Okay.  It's clear that you've got a hardware problem of some sort.  
Hard to say what it is, but evidently the EHCI controller thinks that 
the device is repeatedly being unplugged and replugged.

Anyway, this isn't a problem of recognizing that a single device is
having problems.  In fact the computer has no way of knowing that a
single device is involved; all it knows is that _something_ gets
plugged into the port and then removed.  There's no way to tell if it's 
the same _something_ from one iteration to the next.

You can manually force the port to run at full speed instead of high 
speed as follows:

	echo '4' >/sys/class/usb_host/usb_host4/companion

The "companion" attribute file contains a list of ports which are 
permanently set to be handled by the EHCI's companion controller.  To 
return to high-speed operation, use '-4' instead of '4' above.  This 
might or might not solve your problem -- the hardware bug might cause 
the port to return automatically to high-speed regardless.

Let me know what happens.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.