[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201006241001.01587.ozan@pardus.org.tr>
Date: Thu, 24 Jun 2010 10:01:01 +0300
From: Ozan Çağlayan <ozan@...dus.org.tr>
To: Alan Stern <stern@...land.harvard.edu>
Cc: linux-kernel@...r.kernel.org
Subject: Re: [BISECTED] Suspend regression in v2.6.31 with Lenovo 3000 v200
Salı 22 Haziran 2010 günü (saat 20:47:11) Alan Stern şunları yazmıştı:
> On Tue, 22 Jun 2010, [UTF-8] Ozan ÃaÄlayan wrote:
>
> Sorry about that; a couple of changes have been made in that area since
> 2.6.31 was released.
>
> Here's what you need to do: In 2.6.31's hub.c there are two calls to
> device_init_wakeup(), both inside usb_set_device_state(). Change both
> of them into calls to device_set_wakeup_capable() and that should fix
> the problem. This is what the first part of commit
> 16985408b5c48585762ec3b9b7bae1dec4ad7437 does (but the second half of
> that commit will reintroduce the problem, so don't apply it).
Ok so it should be something like this:
--- linux-2.6.31.orig/drivers/usb/core/hub.c
+++ linux-2.6.31/drivers/usb/core/hub.c
@@ -1305,11 +1305,11 @@ void usb_set_device_state(struct usb_dev
· · · · · || new_state == USB_STATE_SUSPENDED)
· · · · ;· /* No change to wakeup settings */
· · · else if (new_state == USB_STATE_CONFIGURED)
-· · · · device_init_wakeup(&udev->dev,
+· · · · device_set_wakeup_capable(&udev->dev,
· · · · · (udev->actconfig->desc.bmAttributes
· · · · · & USB_CONFIG_ATT_WAKEUP));
· · · else
-· · · · device_init_wakeup(&udev->dev, 0);
+· · · · device_set_wakeup_capable(&udev->dev, 0);
· · }
· · if (udev->state == USB_STATE_SUSPENDED &&
· · · new_state != USB_STATE_SUSPENDED)
>
> You can verify the result by checking the contents of
> /sys/bus/usb/devices/2-5/power/wakeup (replace the 2-5 with the correct
> path for the camera device). With the current code it will say
> "enabled", but after the change it should say "disabled".
>
I'll make them try this kernel but when I compare the output of
cat /sys/bus/usb/devices/*/power/wakeup
between the patched and non-patched kernels on my system, all wakeup values
are still enabled. Because as far as I understand the first call still can
enable remote wakeup as the 2nd parameter isn't a hardcoded 0. Or should this
only affect some devices?
Thanks again.
---
Ozan Çağlayan
TUBITAK/UEKAE - Pardus Linux
http://www.pardus.org.tr/eng
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists