Hi Darren,

thanks for taking the time to provide feedback.

On Wednesday 15 October 2008, Darren Longhorn wrote:
> Laurent Pinchart wrote:
>
> <snip>
>
> > linux-tv.org Mercurial trees contain a copy of the whole v4l/dvb
> > subsystem. The main implication would be that, to use the latest uvcvideo
> > driver instead of the one shipped with your kernel, you will have to
> > install the v4l core module from the Mercurial tree along with the
> > uvcvideo module, instead of the uvcvideo module only as you do now.
>
> Could you expand on why the v4l core module would also be required?

Mercurial trees host a copy of the whole v4l/dvb subsystem. The v4l/dvb core 
is source compatible with all Linux kernels from 2.6.16 up. The device 
drivers maintain backward source compatibility as well, but the first Linux 
kernel version they are compatible with depends on the individual drivers' 
developers.

As a v4l/dvb tree host a backward compatible copy of the v4l core source, 
drivers don't have to care about backward compatibility with older versions 
of the v4l/dvb APIs. For the uvcvideo driver this would mean I can drop an 
important part of the compatibility code as the driver will only have to 
support the latest v4l/dvb API. To use the driver with older kernels you 
would then have to use the v4l/dvb core moduels as well, as the driver itself 
doesn't maintain backward compability with previous versions of the v4l/dvb 
core.

> > I would expect the number of SVN checkouts to have dropped over the last
> > 3 monts, but Berlios doesn't provide such statistics. I'm thus asking
> > your opinion : should I switch the Linux UVC driver to a Mercurial tree ?
> >
> > Pros:
> >  - The driver will be hosted along most other video-related kernel
> > projects - An important part of the compatibility code (uvc_compat.h and
> > various #ifdef's around the source) can be dropped, as the source tree
> > contains the latest v4l core source.
>
> That answers my questions above, I think? I think that would be a con
> for those of use who backport to older kernels.

Backporting will still work, but you will have to backport the v4l/dvb core as 
well.

Do you really mean backporting (thus on kernels older than 2.6.15, as the 
uvcvideo driver supports 2.6.15+ kernels already), or were you referring to 
using the driver with a 2.6.15+ kernel ? In the later case the switch to 
Mercurial would drop compatibility with 2.6.15 but 2.6.16 and above should 
work.

> <snip>
>
> > What's your opinion ? Is someone strongly opposed to the switch ? If so
> > please state your reasons. All constructive opinions are welcome.
>
> I guess I would be opposed for teh reson above, but I'm probably a very
> small minority!

Your opinion in nonetheless important.

Maintaining backward compatibility in the uvcvideo driver itself wasn't that 
much of a burden until now, but changes in the v4l core queued for 2.6.28 
would introduced a whole new set of #ifdef's all around the driver. The code 
would become messy and I'd like to avoid that if possible. Hence the idea of 
switching to Mercurial.

Best regards,

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

Reply via email to