Re: webcam problem after suspend/hibernate
From: Philippe Troin
Date: Sun Apr 04 2010 - 14:59:09 EST
Pavel Machek <pavel@xxxxxx> writes:
> > > > Do you mean the dmesg output ?
> > > > A full dmesg is included in this address :
> > > > http://pastebin.com/8XU619Uk
> > > > Not in all suspend/hibernate the problem comes, only in some of them
> > > > and this included dmesg output is just after a non working case of
> > > > webcam fault.
> > > >
> > > >
> > > > I also have found this in `/var/log/messages | grep uvcvideo`
> > > > Mar 31 00:31:16 linux-l365 kernel: [399905.714743] usbcore:
> > > > deregistering interface driver uvcvideo
> > > > Mar 31 00:31:24 linux-l365 kernel: [399914.121386] uvcvideo: Found UVC
> > > > 1.00 device LG Webcam (0c45:62c0)
> > > > Mar 31 00:31:24 linux-l365 kernel: [399914.135661] usbcore: registered
> > > > new interface driver uvcvideo
> > >
> > > Also try unloading uvcvideo before suspend and reloading it after
> > > resume...
> > I have a similar problem with a Creative Optia webcam.
> > I have found that removing the ehci_hcd module and reinserting it
> > fixes the problem.
> > If your kernel ships with ehci_hcd built-in (F11 and later), the
> > script included also fixes the problem (it rebind the device).
> > Of course, I'd love to see this issue fixed.
> If unload/reload of uvcvideo helps, it is most likely problem in that.
> If unload/reload of ehci_hcd is needed, it is most likely ehci problem.
My testing shows that:
1. If I remove uvcvideo BEFORE suspend and reinsert it after resume,
it works. However, I cannot always rmmod uvcvideo before suspend
as it may be in use.
2. As a work around, removing ehci_hcd and reinserting ehci_hcd upon
resume works as well.
3. Since my distribution's kernels come with ehci_hcd built into the
kernel, and I cannot do #2 any more, I also found that unbinding
and rebinding the device (with the script I sent earlier on) works
I think uvcvideo is failing to reinitialize the camera on resume, and
forcing an uvcvideo "reset" with either of these three methods kicks
uvcvideo into working again.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/