Re: webcam problem after suspend/hibernate

2010-04-04 Thread Philippe Troin
Pavel Machek  writes:

> Hi!
> 
> > > > 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
as well.

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.

Phil.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: webcam problem after suspend/hibernate

2010-04-01 Thread Philippe Troin
Pavel Machek  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.

Phil.

Script: /etc/pm/sleep.d/50kickuvc

#!/bin/sh

case "$1" in
  resume|thaw)
cd /sys/bus/usb/drivers/uvcvideo || exit 1
devices=''
for i in [0-9]*-[0-9]*:*
do
  [ -L "$i" ] || break
  saved_IFS="$IFS"
  IFS=:
  set -- $i
  IFS="$saved_IFS"
  found=no
  for j in $devices
  do
if [ "$j" = "$1" ]
then
  found=yes
fi
  done
  if [ "$found" = no ]
  then
devices="$devices $1"
  fi
done
if [ "$devices" != "" ]
then
  cd /sys/bus/usb/drivers/usb || exit 1
  for i in $devices
  do
echo $i > unbind
sleep 1
echo $i > bind
  done
fi
;;
esac
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html