Re: webcam problem after suspend/hibernate
Hi! > > > 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. ... > > > 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. > > > > Ok, that puts the problem firmly into uvcvideo area. > > No, it doesn't. I believe that the fact that rmmod/insmod fixes it means that problem is in the driver (and not in ehci or something like that). > First of all, the dmesg output available on pastebin.com is difficult to > understand. As it seems you perform several suspend/resume cycles there. > Mohamed, could you please > > - clear the kernel log ('dmesg -c' as root) > - suspend and resume your system > - post the kernel log content ('dmesg') > - clear the kernel log > - try to use your webcam with whatever test software your prefer > - describe the failure (application error messages, ...) > - post the kernel log content Good idea. > > Try changing its _resume routine to whatever is done on device > > unplug... it should be rather easy, and is quite close to "correct" > > solution. > > That's not a solution. Devices are supposed to resume properly without being > reset. The camera might be crashing, or the USB core might be doing something > wrong, requiring some kind of reset. I'd like to diagnose the problem > correctly before trying to fix it. Ok. (You are right that simulating rmmod/insmod is not the same as proper suspend/resume support, but I still guess it would help with debugging.) Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- 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
On Sunday 04 April 2010 21:34:06 Pavel Machek wrote: > Hi! > > > > 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. > > Ok, that puts the problem firmly into uvcvideo area. No, it doesn't. First of all, the dmesg output available on pastebin.com is difficult to understand. As it seems you perform several suspend/resume cycles there. Mohamed, could you please - clear the kernel log ('dmesg -c' as root) - suspend and resume your system - post the kernel log content ('dmesg') - clear the kernel log - try to use your webcam with whatever test software your prefer - describe the failure (application error messages, ...) - post the kernel log content > Try changing its _resume routine to whatever is done on device > unplug... it should be rather easy, and is quite close to "correct" > solution. That's not a solution. Devices are supposed to resume properly without being reset. The camera might be crashing, or the USB core might be doing something wrong, requiring some kind of reset. I'd like to diagnose the problem correctly before trying to fix it. -- Regards, Laurent Pinchart -- 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
On Tue 2010-04-06 11:32:46, Mohamed Ikbel Boulabiar wrote: > Hi ! > > > Ok, that puts the problem firmly into uvcvideo area. > > > > Try changing its _resume routine to whatever is done on device > > unplug... it should be rather easy, and is quite close to "correct" > > solution. > > I am waiting to try that. > > If I always need to rmmod/modprobe everytime, that is meaning that > something is kept messed somewhere in memory and should be cleaned by > restart (reinitialize ?) the device. Yes. And it also means that problem is within the stuff being rmmoded/insmoded. -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- 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
Hi ! > Ok, that puts the problem firmly into uvcvideo area. > > Try changing its _resume routine to whatever is done on device > unplug... it should be rather easy, and is quite close to "correct" > solution. I am waiting to try that. If I always need to rmmod/modprobe everytime, that is meaning that something is kept messed somewhere in memory and should be cleaned by restart (reinitialize ?) the device. Mohamed-Ikbel -- 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
Hi! > > 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. Ok, that puts the problem firmly into uvcvideo area. Try changing its _resume routine to whatever is done on device unplug... it should be rather easy, and is quite close to "correct" solution. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- 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
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
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. -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- 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
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
Re: webcam problem after suspend/hibernate
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... -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- 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
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 and in `cat /proc/modules | grep uvcvideo` uvcvideo 65900 0 - Live 0xfa386000 videodev 39168 1 uvcvideo, Live 0xf8244000 v4l1_compat 16004 2 uvcvideo,videodev, Live 0xf822f000 And thanks in advance for you help. On Wed, Mar 31, 2010 at 1:25 AM, Laurent Pinchart wrote: > Hi Mohamed, > > On Tuesday 30 March 2010 23:55:38 Mohamed Ikbel Boulabiar wrote: >> Hi, >> >> After suspend/resume, I have my webcam no more working. >> The /dev/video0 file still exist, but the webcam won't be used until I do >> this : rmmod uvcvideo >> modprobe uvcvideo >> (2.6.31.8-0.1) >> >> This is may be caused by a bug somewhere. >> These are more information about my hardware : >> >> I have Microdia webcam >> `lsusb` >> Bus 001 Device 004: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera >> >> on openSUSE 11.2 `uname -a` >> Linux linux-l365 2.6.31.8-0.1-desktop #1 SMP PREEMPT 2009-12-15 >> 23:55:40 +0100 i686 i686 i386 GNU/Linux >> >> `hwinfo --usb` >> >> : USB 00.0: Unclassified device >> >> [Created at usb.122] >> UDI: >> /org/freedesktop/Hal/devices/usb_device_c45_62c0_1_3_2_1_7_if0_logicaldev_ >> input Unique ID: Uc5H.F0c0EBqBP10 >> Parent ID: k4bc.9T1GDCLyFd9 >> SysFS ID: /devices/pci:00/:00:1d.7/usb1/1-4/1-4:1.0 >> SysFS BusID: 1-4:1.0 >> Hardware Class: unknown >> Model: "Microdia LG Webcam" >> Hotplug: USB >> Vendor: usb 0x0c45 "Microdia" >> Device: usb 0x62c0 "LG Webcam" >> Revision: "32.17" >> Serial ID: "1.3.2.1.7" >> Driver: "uvcvideo" >> Driver Modules: "uvcvideo" >> Device File: /dev/input/event8 >> Device Files: /dev/input/event8, /dev/char/13:72, >> /dev/input/by-id/usb-LG_Innotek_LG_Webcam_1.3.2.1.7-event-if00, >> /dev/input/by-path/pci-:00:1d.7-usb-0:4:1.0-event >> Device Number: char 13:72 >> Speed: 480 Mbps >> Module Alias: "usb:v0C45p62C0d3217dcEFdsc02dp01ic0Eisc01ip00" >> Driver Info #0: >> Driver Status: uvcvideo is active >> Driver Activation Cmd: "modprobe uvcvideo" >> Config Status: cfg=no, avail=yes, need=no, active=unknown >> Attached to: #4 (Hub) >> >> >> If there is a scenario you propose me to do to detect from where comes >> the problem, I can apply it. > > Could you please post the messages printed by the uvcvideo driver and USB core > to the kernel log when you suspend and resume your system ? Thanks. > > -- > Regards, > > Laurent Pinchart > -- 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
Hi Mohamed, On Tuesday 30 March 2010 23:55:38 Mohamed Ikbel Boulabiar wrote: > Hi, > > After suspend/resume, I have my webcam no more working. > The /dev/video0 file still exist, but the webcam won't be used until I do > this : rmmod uvcvideo > modprobe uvcvideo > (2.6.31.8-0.1) > > This is may be caused by a bug somewhere. > These are more information about my hardware : > > I have Microdia webcam > `lsusb` > Bus 001 Device 004: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera > > on openSUSE 11.2 `uname -a` > Linux linux-l365 2.6.31.8-0.1-desktop #1 SMP PREEMPT 2009-12-15 > 23:55:40 +0100 i686 i686 i386 GNU/Linux > > `hwinfo --usb` > > : USB 00.0: Unclassified device > > [Created at usb.122] > UDI: > /org/freedesktop/Hal/devices/usb_device_c45_62c0_1_3_2_1_7_if0_logicaldev_ > input Unique ID: Uc5H.F0c0EBqBP10 > Parent ID: k4bc.9T1GDCLyFd9 > SysFS ID: /devices/pci:00/:00:1d.7/usb1/1-4/1-4:1.0 > SysFS BusID: 1-4:1.0 > Hardware Class: unknown > Model: "Microdia LG Webcam" > Hotplug: USB > Vendor: usb 0x0c45 "Microdia" > Device: usb 0x62c0 "LG Webcam" > Revision: "32.17" > Serial ID: "1.3.2.1.7" > Driver: "uvcvideo" > Driver Modules: "uvcvideo" > Device File: /dev/input/event8 > Device Files: /dev/input/event8, /dev/char/13:72, > /dev/input/by-id/usb-LG_Innotek_LG_Webcam_1.3.2.1.7-event-if00, > /dev/input/by-path/pci-:00:1d.7-usb-0:4:1.0-event > Device Number: char 13:72 > Speed: 480 Mbps > Module Alias: "usb:v0C45p62C0d3217dcEFdsc02dp01ic0Eisc01ip00" > Driver Info #0: > Driver Status: uvcvideo is active > Driver Activation Cmd: "modprobe uvcvideo" > Config Status: cfg=no, avail=yes, need=no, active=unknown > Attached to: #4 (Hub) > > > If there is a scenario you propose me to do to detect from where comes > the problem, I can apply it. Could you please post the messages printed by the uvcvideo driver and USB core to the kernel log when you suspend and resume your system ? Thanks. -- Regards, Laurent Pinchart -- 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
webcam problem after suspend/hibernate
Hi, After suspend/resume, I have my webcam no more working. The /dev/video0 file still exist, but the webcam won't be used until I do this : rmmod uvcvideo modprobe uvcvideo (2.6.31.8-0.1) This is may be caused by a bug somewhere. These are more information about my hardware : I have Microdia webcam `lsusb` Bus 001 Device 004: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera on openSUSE 11.2 `uname -a` Linux linux-l365 2.6.31.8-0.1-desktop #1 SMP PREEMPT 2009-12-15 23:55:40 +0100 i686 i686 i386 GNU/Linux `hwinfo --usb` : USB 00.0: Unclassified device [Created at usb.122] UDI: /org/freedesktop/Hal/devices/usb_device_c45_62c0_1_3_2_1_7_if0_logicaldev_input Unique ID: Uc5H.F0c0EBqBP10 Parent ID: k4bc.9T1GDCLyFd9 SysFS ID: /devices/pci:00/:00:1d.7/usb1/1-4/1-4:1.0 SysFS BusID: 1-4:1.0 Hardware Class: unknown Model: "Microdia LG Webcam" Hotplug: USB Vendor: usb 0x0c45 "Microdia" Device: usb 0x62c0 "LG Webcam" Revision: "32.17" Serial ID: "1.3.2.1.7" Driver: "uvcvideo" Driver Modules: "uvcvideo" Device File: /dev/input/event8 Device Files: /dev/input/event8, /dev/char/13:72, /dev/input/by-id/usb-LG_Innotek_LG_Webcam_1.3.2.1.7-event-if00, /dev/input/by-path/pci-:00:1d.7-usb-0:4:1.0-event Device Number: char 13:72 Speed: 480 Mbps Module Alias: "usb:v0C45p62C0d3217dcEFdsc02dp01ic0Eisc01ip00" Driver Info #0: Driver Status: uvcvideo is active Driver Activation Cmd: "modprobe uvcvideo" Config Status: cfg=no, avail=yes, need=no, active=unknown Attached to: #4 (Hub) If there is a scenario you propose me to do to detect from where comes the problem, I can apply it. Thanks, ik. -- 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