Hi Laurent and all,

I'm currently working on a V4L driver for Ricoh webcams.  I write to
you because there is some apparent device support overlap that should
be resolved.

To give a brief description of this type of hardware, all known
webcams of this sort are built in to laptops, including a handful of
models from Sony and HP, and they are built around an 8051
microcontroller.  Some of these devices report video class interface
descriptors.  Older devices report some sort of interface descriptor
claiming to be image class, but are nothing of the sort, and they even
managed to create at least two distinct non-UVC devices that report
the same 05ca:1870 device ID.

The Ricoh webcams that claim to support UVC indeed behave as true UVC
devices, and even work with uvcvideo, but with two caveats:

1. A microcode image must be uploaded the first time the device is
used since the machine has been powered on.

2. Some picture controls are not described in the UVC interface
descriptors, and in fact these picture controls are set using the same
commands as non-UVC Ricoh webcams.

I have implemented complete support for three Ricoh UVC devices in my
driver, using a minimal UVC implementation.  These include:

05ca:1810 - HP Pavilion Webcam
05ca:1835 - Sony VGP-VCC5
05ca:1836 - Sony VGP-VCC4

Getting to the point, a system with both uvcvideo and r5u870 installed
will be a source of confusion.  Both uvcvideo and r5u870 will try to
attach to the above devices -- uvcvideo because of the video class
interface, r5u870 because of the device ID.  If the webcam does not
have microcode, uvcvideo will fail and r5u870 will succeed.  If the
webcam does have microcode, such as after unloading r5u870 and loading
uvcvideo, or after a warm boot, uvcvideo will succeed.  This is very
inconsistent.

Either uvcvideo should fully support these three devices and future
Ricoh UVC devices, or it should blacklist them.  Adding support to
uvcvideo should not be terribly difficult and I'm willing to propose a
patch -- but if we go this route, I will grill other aspects of
uvcvideo to ensure that my users don't lose any application support.

Aside, the Windows drivers for these devices are apparently
implemented as a pair of filter drivers around usbvideo.sys.  The
lower filter contains the microcode and handles the upload process,
and also handles the non-UVC picture control requests.

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

Reply via email to