You are not logged in.
Pages: 1
Hi
Hopefully I post this at the correct place.
I have happily been waking my HTPC from suspend using my USB remote for a while now.
A while ago this stopped working. It appears like there isn't any power to the IR-reviever when the computer sleeps.
I can wake the computer using the power button on the computer or the PS2 keyboard if I enable it in /proc/acpi/wakeup
I have sort of located the problem.
It happens when I upgrade the kernel to kernel26-2.6.33.4-1-x86_64
If I downgrade to kernel26-2.6.33.3-2-x86_64 the problem goes away and everything works as before.
Should this be reported somewhere? If so, where and how?
Is there any chance for me to fix this or should I just hang on to kernel26-2.6.33.3-2-x86_64 and try agin when there is a new update?
Thanks in advance
Offline
Hello
Here is an extract of the 2.6.33.4 changelog you can download at http://www.kernel.org/pub/linux/kernel/ … g-2.6.33.4 :
commit 2b454d9a5f0507c1bc3f01c06a2e6c464d2a2641
Author: Alan Stern <stern@rowland.harvard.edu>
Date: Fri Apr 30 12:09:23 2010 -0400USB: fix remote wakeup settings during system sleep
This is a backport of commit 5f677f1d45b2bf08085bbba7394392dfa586fa8e.
Some of the functionality had to be removed, but it should still fix
the webcam problem.
This patch (as1363b) changes the way USB remote wakeup is handled
during system sleeps. It won't be enabled unless an interface driver
specifically needs it. Also, it won't be enabled during the FREEZE or
QUIESCE phases of hibernation, when the system doesn't respond to
wakeup events anyway.
This will fix problems people have reported with certain USB webcams
that generate wakeup requests when they shouldn't, and as a result
cause system suspends to fail. See
https://bugs.launchpad.net/ubuntu/+sour … bug/515109
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
You might wanna contact the author(s). Seems like there have to be a specific information to add to the driver in order to allow resume. They should know more.
Cheers
Offline
There's a patch to fix this issue. I tested it on the latest kernel and it works and solves the issue. Here is the patch:
--- linux-2.6.34/drivers/usb/core/driver.c 2010-07-17 00:50:09.000000000 +0200
+++ linux-2.6.34/drivers/usb/core/driver.c.mce 2010-07-17 01:09:20.407000116 +0200
@@ -1266,9 +1266,7 @@
static void choose_wakeup(struct usb_device *udev, pm_message_t msg)
{
- int w, i;
- struct usb_interface *intf;
-
+
/* Remote wakeup is needed only when we actually go to sleep.
* For things like FREEZE and QUIESCE, if the device is already
* autosuspended then its current wakeup setting is okay.
@@ -1279,23 +1277,11 @@
return;
}
- /* If remote wakeup is permitted, see whether any interface drivers
+ /* Allow remote wakeup if it is enabled, even if no interface drivers
* actually want it.
*/
- w = 0;
- if (device_may_wakeup(&udev->dev) && udev->actconfig) {
- for (i = 0; i < udev->actconfig->desc.bNumInterfaces; i++) {
- intf = udev->actconfig->interface[i];
- w |= intf->needs_remote_wakeup;
- }
- }
-
- /* If the device is autosuspended with the wrong wakeup setting,
- * autoresume now so the setting can be changed.
- */
- if (udev->state == USB_STATE_SUSPENDED && w != udev->do_remote_wakeup)
- pm_runtime_resume(&udev->dev);
- udev->do_remote_wakeup = w;
+
+ udev->do_remote_wakeup = device_may_wakeup(&udev->dev);
}
/* The device lock is held by the PM core */
Hope this helps, thanks to the guys on the XBMC forums for getting this done!
Kevin
Offline
Pages: 1