[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.44L0.1006221327010.1322-100000@iolanthe.rowland.org>
Date: Tue, 22 Jun 2010 13:47:11 -0400 (EDT)
From: Alan Stern <stern@...land.harvard.edu>
To: Ozan Çağlayan <ozan@...dus.org.tr>
cc: linux-kernel@...r.kernel.org, <gregkh@...e.de>, <rjw@...k.pl>
Subject: Re: [BISECTED] Suspend regression in v2.6.31 with Lenovo 3000 v200
On Tue, 22 Jun 2010, [UTF-8] Ozan ÃaÄlayan wrote:
> Alan Stern wrote:
>
> > Okay, the bus is usb2, the device attached to port 5 is a USB camera,
> > and it uses the Ali m5602 driver. I have seen similar reports before,
> > but they involved a webcam using the uvcvideo driver.
> >
> > Anyway, the problem is that the camera sends a wakeup request, which
> > causes the suspend to be aborted. I can't imagine why a camera would
> > want to send a wakeup request -- probably it's a bug in the firmware.
> > You can work around it by manually (or in a udev script) disabling
> > wakeup on the camera:
> >
> > echo disabled >/sys/bus/usb/devices/2-5/power/wakeup
> >
> > Or you can back-port the patch that fixed the problem, commit
> > 7aba8d014341341590ecb64050b7a026642a62eb (USB: don't enable remote
> > wakeup by default).
> >
> > Alan Stern
>
> Thank you very much for your help but it seems that core/hub.c in 2.6.31.13
> doesn't even include device_set_wakeup_enable() call that the commit you've
> mentioned removes. There are 2 calls in core/hcd.c and 1 in core/hcd-pci.c
> which at a quick glance still exists in the current master.
>
> Should I disable the the remote wakeup in somewhere else or does that commit
> doesn't really fix the issue?
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).
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".
Alan Stern
--
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