Re: Remote wakeup from standby

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

 



Hello,

Alan Stern <stern@...> writes:

> 
> On Tue, 11 May 2010, Rob Duncan wrote:
> 
> > My device is happily going into selective suspend and can be resumed by 
> > either the runtime PM APIs or by generating its own remote wakeup
> > signal.  However, it isn't able to resume from a system suspend.
> > 
> > I put my machine into suspend with:
> > 
> > # echo standby >/sys/power/state
> > 
> > wait a few seconds, press my remote-wakeup button on the device, but
> > nothing happens.  The board has power because my LEDs stay lit.  When I
> > resume the system by pressing the power button on the machine itself
> > everything comes back up as normal.
> > 
> > I put a sniffer on the bus and I see the host issue a CLEAR-FEATURE for
> > remote wakeup right before the suspend happens.
> 
> That should not happen.  If your device is enabled for remote wakeup 
> then the host will send Set-Feature for remote wakeup right before 
> suspending (and will clear it right after resuming), but if it isn't 
> then the host won't send anything of the sort.  See usb_port_suspend() 
> and finish_port_resume() in drivers/usb/core/hub.c.
> 
> > Is there some other configuration I need to set before this will work?
> 
> Make sure the /sys/bus/usb/devices/.../power/wakeup file contains 
> "enabled".  (You may also want to check the power/wakeup setting for 
> the root hub device and for the root hub's parent controller.)

I'm having a related problem. For a home theater PC, I have a gyration remote
(which registers as a USB mouse & keyboard). It supports remote wakeup, but I'm
having trouble getting it working reliably with S3.

I first verify that S3 works fine. remote wakeup isn't enabled by default, so I
suspend to S3, then manually wakeup the system by pressing the power button
(this is on an Acer Aspire Revo 1600). Everything works fine, the system goes
into suspend as expected and wakes up when the power button is pressed.

I then fresh reboot and enable remote wakeup via "echo USB0 > /proc/acpi/wakeup"
&& "echo USB2 > /proc/acpi/wakeup", then "cat /proc/acpi/wakeup" to verify the
settings took. I've also verified various USB devices under
/sys/bus/usb/devices/ have wakeup enabled.

I then suspend to S3, which works fine, and then press a button on the remote
and the system wakes up fine. But after that first cycle, any subsequent attempt
to suspend will suspend and automatically resume.


hmm, I originally thought this was related to the gyration remote control, but I
tried rerunning some experiments to provide accurate data and it now appears any
USB device plugged in results in automatic wakeup if I try to suspend. In
contrast, I can suspend just fine if I unplug all USB devices. I had also seen
the "S3 works only on first try" previously, but I'm unable to reproduce that
right now, the system always wakes up immediately.

I was previously suspicious that whatever triggered the wakeup was not being
cleared. That would allow the first S3 cycle to work fine, but then wakeup was
continually asserted and would keep another S3 cycle from working. I realize my
data seems a little sketchy in my retests. I'm not sure if I've changed
something or just missing a step in my previous reproductions.

In any case, is there a way to identify what triggered a wakeup?

I'm currently running a 2.6.31-19-386 kernel from Ubuntu 9.10. I can provide any
logs requested.

Thank you for any guidance/assistance,
Terence



> 
> Alan Stern
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@...
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 




--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux