[linux-pm] Request for testing remote wakeup during STD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 11 Feb 2007, Nigel Cunningham wrote:

> Hi.
> 
> On Sat, 2007-02-10 at 12:08 -0500, Alan Stern wrote:
> > On Sat, 10 Feb 2007, Nigel Cunningham wrote:
> > 
> > > Hi Alan.
> > 
> > > I'd love to be able to help you. My lappy loads ehci and lsusb shows the
> > > controller, but I'll be darned if I can find the socket! I have other
> > > things to get done right now, but if no-one beats me to it, I'll try the
> > > desktop I have - I think that has ehci somewhere.
> > 
> > Thanks, Nigel.  You mean your laptop has an EHCI controller but no USB
> > ports?  That's odd...
> 
> Yeah. I have three USB ports on it, but two of them seem to be connected
> to one controller (going by lsusb after plugging my Palm into each of
> them).

The contents of /proc/bus/usb/devices would be easier to read.
Nevertheless, here's a capsule explanation:

Most high-speed USB host controllers aren't capable of supporting full
speed or low speed.  In order to make a completely functional system,
vendors have to pair each high-speed controller with a companion
full-and-low-speed controller.  USB ports are wired internally to both
controllers, and an electronic switch decides which controller actually
manages the port at any time, based on the speed of the device plugged
into the port.

Sometimes a single high-speed controller will have more than one
companion.  For example, each companion controller might handle only two
ports while the high-speed controller can handle six; in that case there
would have to be three companions.

And sometimes controllers aren't connected to anything at all!  For
example, I've got a PCI USB card on my machine.  It contains 1 EHCI (high
speed) controller capable of handling six ports and 3 OHCI (full and low
speed) each capable of handling two ports, as described above.  But the
card has only 4 ports!  Each port is connected to the EHCI controller and
to one of the OHCI controllers, and one OHCI is connected to nothing.  
The card is a cut-down version of a 6-port model, and the manufacturer
simply removed two of the ports while leaving the third OHCI controller on
board.

As another example, my motherboard has three USB ports and three OHCI 
controllers, each of which is capable of driving two ports but is wired up 
only to one.

> > Anyway, here are instructions for you or anyone else who can do the test.  
> > (I forgot to include them in the original message.)  Running the test
> > involves two steps.
> > 
> > The first step is to check that an unpatched system supports Wake-on-USB.  
> > This means enabling it in the BIOS and/or in ACPI (whatever that might
> > entail; I have no idea what's needed) and actually trying it out.  Either
> > plugging or unplugging a USB device while the system is in STD should wake
> > the machine up.
> > 
> > The second step is to see whether Wake-on-USB continues to work after
> > applying the patch mentioned previously.  That's the real question.
> > 
> > It may turn out that _nobody_ has Wake-on-USB working at all... in which 
> > case we'd have a different problem to solve.
> 
> Thanks!

On further thought, I wonder if this could ever work reliably.  During 
suspend-to-disk, after the memory snapshot is created every device is 
woken up to write out the image (or at least, every device that was awake 
before the suspend-to-disk started).  The image is written and then the 
system shuts down, without bothering to suspend anything.

Now I don't know about other subsystems, but in USB we disable remote
wakeup when a device is resumed and enable it when the device is
suspended.  Since the sequence of events is <resume, write image,
shutdown> with no intervening suspend, remote wakeup will not be enabled.

That's true for external devices, anyway.  For devices on the motherboard, 
like host controllers, it's entirely possible that the firmware uses some 
other technique to control remote wakeup (something involving ACPI, for 
example).  Documentation on this point is almost non-existent, so it's 
kind of hard to say anything definite.

This suggests that I shouldn't worry about remote wakeup during
suspend-to-disk at all -- it's a lost cause.

Alan Stern



[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux