[PATCH] USB UHCI: Fix up loose ends
authorAlan Stern <stern@rowland.harvard.edu>
Sat, 9 Apr 2005 21:30:08 +0000 (17:30 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 27 Jun 2005 21:43:44 +0000 (14:43 -0700)
commit4daaa87c8f19c5f1978470e9e91b74d9e0fb0f8e
treeee4ea0e8f4d9912c246916f08f2b50fbc5b42a6a
parenta8bed8b6be75bc5a46aa599ab360d5f1db291c8f
[PATCH] USB UHCI: Fix up loose ends

This patch tidies up a few loose ends left by the preceding patches.
It indicates the controller supports remote wakeup whenever the PM
capability is present -- which shouldn't cause any harm if the
assumption turns out to be wrong.  It refuses to suspend the
controller if the root hub is still active, and it refuses to resume
the root hub if the controller is suspended.  It adds checks for a
dead controller in several spots, and it adds memory barriers as
needed to insure that I/O operations are completed before moving on.

Actually I'm not certain the last part is being done correctly.  With
code like this:

outw(..., ...);
mb();
udelay(5);

do we know for certain that the outw() will complete _before_ the
delay begins?  If not, how should this be written?

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/uhci-hcd.c