On Wednesday 23 April 2008, Johannes Weißl wrote:
> Hello Laurent,
>
> On Wed, Apr 23, 2008 at 04:18:37PM +0200, Laurent Pinchart wrote:
> > That's very strange. Are you sure you're using svn203 and not a driver
> > installed by your distribution ? Could you please post more of the kernel
> > log ? I need all messages related to the UVC driver, including messages
> > printed when the driver is loaded and messages related to the first
> > plug/unplug of the camera.
>
> Thanks for your fast reply. I'm pretty sure:
>
>  # modinfo uvcvideo
>  filename:       /lib/modules/2.6.24.4/usb/media/uvcvideo.ko
>  version:        SVN r203
>  [...]
>
> Messages when connecting the webcam:
>
>  usb 4-3: new high speed USB device using ehci_hcd and address 2
>  usb 4-3: configuration #1 chosen from 1 choice
>  Linux video capture interface: v2.00
>  uvcvideo: Found UVC 1.00 device Live! Cam Optia (041e:4057)
>  videodev: "" has no release callback. Please fix your driver for proper
> sysfs support, see http://lwn.net/Articles/36850/ input: Live! Cam Optia as
> /class/input/input8

This is definitely not normal. The above message is printed by videodev when a 
driver registers a device without setting a release callback. It looks like 
something gets corrupted somewhere, as the message should also print the 
device's name insted of "".

Could you please set the trace parameter to 15 when loading the module and try 
again to see if the driver prints additional information that could help us 
diagnose the problem ?

>  usbcore: registered new interface driver uvcvideo
>  USB Video Class driver (SVN r203)
>
> first time "luvcview -d /dev/video0 -f jpg -i 25 -s 640x480":
>
>  uvcvideo: device Live! Cam Optia requested null bandwidth, defaulting to
> lowest.
>
> Replugging:
>
>  usb 4-3: USB disconnect, address 2
>  usb 4-3: new high speed USB device using ehci_hcd and address 3
>  usb 4-3: configuration #1 chosen from 1 choice
>  uvcvideo: Found UVC 1.00 device Live! Cam Optia (041e:4057)
>  videodev: "" has no release callback. Please fix your driver for proper
> sysfs support, see http://lwn.net/Articles/36850/ input: Live! Cam Optia as
> /class/input/input9
>
> second time "luvcview -d /dev/video0 -f jpg -i 25 -s 640x480":
>
>  BUG: unable to handle kernel NULL pointer dereference at virtual address
> 00000030 printing eip: f9e0e0a5 *pde = 00000000
>  Oops: 0000 [#1] PREEMPT
>  [...]
>
>  Pid: 4366, comm: luvcview Not tainted (2.6.24.4 #1)
>  [...]
>
>
> I just found out something that might help:
>
> After replugging, a second device /dev/video1 is created (/dev/video0
> still exists). Reading from /dev/video0 causes the Oops. If I unload all
> uvc-related drivers (uvcvideo, v4l1_compat, ...), and manually remove
> all /dev/video* files, I can reconnect the webcam safely.

I'm not too surprised that /dev/video0 doesn't disappear as videodev 
complained about no release callback.

I really doubt the problem comes from the UVC driver only. Could you add a few 
printk's in video_register_device to see what happens there ? I would expect 
the structure pointed by the vfd parameter to be modified at some point. 
Printing the release and name fields at various points in the function might 
give us some clues.

Best regards,

Laurent Pinchart
_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to