Hi Lawrence,

On Wednesday 19 December 2007, Lawrence Leonard wrote:
> Thanks to Laurent Pinchart, I now know that the OmniVision 2641 device
> should work out of the box, and after rebooting it did come up
> automatically in Skype and Ekiga and I was able to get the microphone
> adjustments set so that sound and video both worked.
>
> However, after rebooting again at a later time (I dual boot Ubuntu and
> Windows XP) the device wasn't recognized and didn't work in Skype or
> Ekiga.  Another reboot and the devices did work.  This has me a little
> perplexed.
>
> In a boot when the camera DOES work, dmesg reports:
>
> uvcvideo: Found UVC 1.00 device Monitor Integrated Webcam (05a9:2641)
> uvcvideo: Failed to query (135) UVC control 1 (unit 0): -32 (exp. 26).
> usbcore: registered new interface driver uvcvideo
>
> In a boot when the camera DOES NOT work, dmesg reports:
>
> uvcvideo: Found UVC 1.00 device Monitor Integrated Webcam (05a9:2641)
> uvcvideo: Failed to query (135) UVC control 1 (unit 0): -32 (exp. 26).
> uvcvideo: Failed to query (129) UVC control 1 (unit 0): -32 (exp. 26).
> uvcvideo: Failed to initialize the device (-5).
> usbcore: registered new interface driver uvcvideo
>
> Is it correct to request help with these symptoms on this list, or is
> this something specific to the Ubuntu boot processes ("upstart") that
> I should pursue downstream on an Ubuntu-specific list/forum?

The problem is not Ubuntu-specific. I *think* it is unfortunately 
device-specific. The device failed to answer two requests. The first one 
(135) is a very common device bug that the driver works around. The second 
one seems to be another device bug that the driver can't work around :-/

Basically, the driver queries the device, and the device stalls (refuses to 
answer the request). As this doesn't happen everytime, I suspect the problem 
to be caused by a firmware bug in the device.

It might be possible to implement a software workaround in the UVC driver by 
adding a small delay in one place or another, but I don't know of any 
definitive solution. The device passed manufacturer's testing because Windows 
and Linux schedule USB transactions differently, which results in slower 
timings in Windows. The bug just slipped uncaught.

It might also be possible to tweak the EHCI controller driver to alter timings 
and make them more Windows-like. That would be a complex project, involving 
deep knowledge of the EHCI host controller. The documentation is out there 
though.

Best regards,

Laurent Pinchart
_______________________________________________
Linux-uvc-devel mailing list
Linux-uvc-devel@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to