On Tue, 30 Nov 2004, Alan Stern wrote:

> It doesn't look special to me either.  It means that the messages from the 
> uhci-hcd driver aren't reaching khubd.
> 
> At this point, your best bet is to add lots of debugging messages to
> drivers/usb/core/hcd.c, in these four routines: rh_status_urb,
> rh_report_status, rh_urb_enqueue, and usb_rh_urb_dequeue.  The second one,
> rh_report_status, should be called 4 times per second for each USB host
> controller.
> 
> If you like, you can also add a debugging message to
> drivers/usb/host/uhci-hub.c in the uhci_hub_status_data routine, which is
> what rh_report_status is supposed to call.  In fact, maybe it would be
> best to start with debugging here, then add the other places if it turns
> out that uhci_hub_status_data isn't getting called after the resume.

I did some more testing on one of my own systems, so don't bother to try 
the tests above.

It turns out there's several problems, but basically the real issue is 
that the UHCI driver still doesn't support suspend/resume very well.  Nor 
is that support fully integrated with the rest of usbcore (or even the PM 
core).

For starters, root hub status polling doesn't stop when the controller is 
suspended.

Next, using sysfs to suspend the controller doesn't suspend the root hub
but succeeds anyway.  This wouldn't happen with a regular swsusp-type
suspend, but it happened to me.

The next problem was that, oddly enough, the I/O-space registers on the
host controller _are_ accessible even in D3hot.  I thought that wasn't
supposed to be possible, only configuration space was useable, but
apparently it can be done.  I checked several times.

The problem after that occurred when khubd saw a connect change on the 
suspended controller and tried to resubmit its status URB.  The resubmit 
failed, and khubd basically just gave up on the root hub.

Now this sequence clearly isn't the same as what you got, but undoubtedly 
there are common elements.  Probably your system log will show the status 
URB failing in resubmission at some stage, and that led to the later 
problems.

For now, my best advice is not to suspend with uhci-hcd loaded.  Once 
2.6.10 is released, further development work will go into making 
suspend/resume more functional.

Alan Stern



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to