Bug 24922

Summary: USB mouse can't wake up the system after S3,but usb keyboard can
Product: Drivers Reporter: sam (sam.g.smg)
Component: USBAssignee: Greg Kroah-Hartman (greg)
Status: CLOSED OBSOLETE    
Severity: normal CC: alan, lenb, rui.zhang, stern
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: Subsystem:
Regression: No Bisected commit-id:
Bug Depends on:    
Bug Blocks: 56331    

Description sam 2010-12-15 08:22:09 UTC
kernel since 2.6.35.8 has issue.
When system suspend to ram, it can't be wake up by moveing the USB mouse.
USB keyboard has no such issue. and other PS/2 Keyboard/Mouse works well.
Comment 1 Zhang Rui 2010-12-16 06:06:15 UTC
I guess plugging/unplugging the USB mouse can wakeup the system, right?
Comment 2 Len Brown 2010-12-21 01:58:06 UTC
> kernel since 2.6.35.8 has issue

Does that mean that moving the USB mouse woke the system in 2.6.35.7?
Comment 3 Alan Stern 2010-12-21 03:09:42 UTC
Lots of USB mice have this problem, especially optical mice.  During suspend they don't have enough power to illuminate the LED, so they can't tell when they are moved.

On the other hand, you may find that pressing the mouse buttons once or twice will wake up the computer.
Comment 4 Zhang Rui 2010-12-27 02:27:01 UTC
so this doesn't sound like a real bug, right? :p
Comment 5 sam 2011-01-04 06:24:27 UTC
(In reply to comment #3)
> Lots of USB mice have this problem, especially optical mice.  During suspend
> they don't have enough power to illuminate the LED, so they can't tell when
> they are moved.
> 
> On the other hand, you may find that pressing the mouse buttons once or twice
> will wake up the computer.

About the USB mice issue with kernel later than 2.6.35.8,
i don't try the kernel 2.6.35.7. but have tried 2.6.36.2, the USB mouse can't wake up the system from suspend.

Not only moving the mouse, pressing the mouse button even plug/unplug the USB mouse ,it can't wake up system from suspend too.

With kernel 2.6.33 , there is no such issue.

Is the ACPI spec changed or other issues with the kernel ?
Comment 6 Alan Stern 2011-01-04 16:37:23 UTC
A recent change may account for these problems: You now have to enable wakeup explicitly for USB controllers.  For example, if the mouse is attached to bus 2 then you have to do:

    echo enabled >/sys/bus/usb/devices/usb2/../power/wakeup
Comment 7 sam 2011-01-06 08:42:58 UTC
(In reply to comment #6)
> A recent change may account for these problems: You now have to enable wakeup
> explicitly for USB controllers.  For example, if the mouse is attached to bus
> 2
> then you have to do:
> 
>     echo enabled >/sys/bus/usb/devices/usb2/../power/wakeup

Tried this method, also tried to set all the USB settings to enabled in /proc/acpi/wakeup.  
 the move or click the USB mouse button, Still can't wake up from suspend.

Is the kernel issue ?
Comment 8 Alan Stern 2011-01-06 15:49:51 UTC
I don't know if it is a kernel issue.

Can you post the relevant wakeup settings in your sysfs files?  I want to verify that they are all set correctly.  And attach a copy of your /sys/kernel/debug/usb/devices file.

Also, can you build a 2.6.36.y kernel with CONFIG_USB_DEBUG enabled?  I'd like to see the dmesg log following a suspend where you unplug the mouse while the system is asleep.

We can also try some runtime-suspend testing.  But let's do this other stuff first.

If we are unable to find the cause, you can still track it down by doing a git bisect search between the 2.6.33 and 2.6.35.8 kernels.