Re: Resuming rt73usb wireless network dongle: ep0in 3strikes

Mattias Nissler <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <1188975771.7850.7.camel@localhost>
On Tue, 2007-09-04 at 15:07 -0400, Alan Stern wrote:
> The actual sequence of events went like this:
> 
> Note that although the driver does get a suspend call, the device
> itself does not specifically get suspended.  That's because this is a
> FREEZE, and the stack knows that suspending the root hub is sufficient.
> (When a root hub is suspended, all the devices on its bus automatically
> suspend themselves.  ehci-hcd goes even farther than that -- when the 
> root hub is suspended, the driver first suspends all the active ports.)
> 
> Likewise, the device does not specifically get resumed.  That's why
> no problems show up until the driver's resume method is called.
> 
> There really and truly was a disconnect event.  This is demonstrated by
> the lines saying:
> 
> Sep  4 18:59:22 kea ehci_hcd 0000:00:1d.7: GetStatus port 3 status 001803 POWER sig=j CSC CONNECT
> Sep  4 18:59:22 kea ehci_hcd 0000:00:1d.7: GetStatus port 6 status 001803 POWER sig=j CSC CONNECT
> 
> The CSC means "Connect Status Change"; i.e., the devices were
> disconnected and now they are connected again.  We can't tell for sure
> when those events happened, except that they clearly occurred before 
> your driver was resumed -- they are the reason for all those "3strikes" 
> errors.
> 
> You can try to get more information by editing ehci_bus_resume() in
> drivers/usb/host/ehci-hub.c.  In the first loop, immediately after the
> ehci_readl() call, have it print out the value of i and the value of 
> temp (in hex).  That way you'll be able to see the status of all the 
> ports before anything else has happened.

Done that, uploaded a new log to
http://www-user.rhrk.uni-kl.de/~nissler/rt73usb_sr/syslog_suspend_to_disk_3.txt

The funny thing about this log is that it is one of the (rare) ones
where the resume actually succeeds without any usb problems :-)

Hell, I just realize it seems to *work* now! I've just run 4 tests and
each time it came back as it should. I was never able to do this
before... Only thing I changed is ehci-hcd now being a module and the
ehci_dbg() call in the loop that prints the port status word. Weirdness!

Anyway, I don't have more time right know, will try to compile ehci-hcd
back into the kernel and see whether the issue comes back then... Maybe
it's a timing problem?

> 
> It's not possible to know what caused the disconnections.  My best
> guess is the BIOS or ACPI on the motherboard.  I think a good way to
> approach this will be to try using a different brand of computer, maybe
> even with a non-Intel motherboard, and compare results.

Yes. I have a report of one person having an ATI EHCI that doesn't
disconnect devices.

Mattias


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
[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.