David:

The UHCI driver clearly has a problem with its
reset/start/suspend/resume/stop functions.  I'm not sure how to fix it
because it's not clear exactly what the callbacks are supposed to
accomplish and the contexts in which they are called (most especially
whether they are allowed to block).  The comments in core/hcd.h are very
terse.

A couple of additional questions suggest themselves.  First, what should
happen if a wakeup/resume signal on the USB bus is detected before the
suspend routine returns?  Second, the Intel UHCI controllers have an
erratum which causes them to present spurious resume-detect signals if a
port's over-current input is active.  (This is not just a theoretical
problem; some manufacturers don't wire up all of the ports to connectors
and then try to disable the unconnected ports by permanently tying the
over-current inputs on.)  When this happens the driver makes the
conservative choice and does not allow suspends at all -- it will shutdown
but not suspend.  How should the PM callbacks behave in that situation?

Alan Stern





-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to