Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: dvb/cvs: _SFBUF must be called? doh!



Michael Hunold <hunold@convergence.de> writes:

> If you use the "build-2.4" dir of the "dvb-kernel" CVS driver then the
> main Video4Linux-1 module "videodev.o" gets replaced by its
> Video4Linux-2 counterpart, which was backported from 2.5.
> 
> The device registering interface has been changed, so any old 2.4
> Video4Linux-1 drivers (ie. ov511 for USB webcams or the 2.4 bttv
> driver) will *not* work any more. You can load the drivers, but the
> kernel will oops on the first open.

That shouldn't be needed ...

> > As of late, however, I learned that linux >= 2.4.19 has
> > a V4L2 layer and all calls to V4L1 are mapped to the
> > new api.
> 
> That is not true. A vanilla >= 2.4.19 kernel only has the
> Video4Linux-1
> interface build in.

Trying to get that a bit more clear ...

There are *two* ways to register video4linux drivers within videodev.o
(no matter which API version they support):

 #1 (old) using a set of function pointers in struct video_device.
 #2 (new) using a struct file_operations in struct video_device.

#1 is supported by all 2.2.x and 2.4.x kernels.
#2 is supported by current 2.5.x and 2.4.x kernels >= 2.4.19.

That means that 2.4.x kernels >= 2.4.19 can handle *both* ways of
registering video4linux devices.  It also means that videodev patches
for 2.4.19 don't fit into 2.4.18 and visa versa.

The v4l2 driver build page lists 2.4.19 as minimum because:
 (1) I don't maintain patches for 2.4.18 and older kernels.
 (2) all v4l2 drivers I'm aware of are using method #2 to register
     them in videodev.o.
 (3) starting with 2.4.19 it is possible to build (v4l2) drivers using
     register method #2 fully modular without patching the kernel and
     without replacing videodev.o.  That should also work for dvb-kernel.

> You can either patch your kernel to have the same infrastructure as
> 2.5 or you can build the V4L2 videodev.o module outside the kernel
> (like the "build-2.4" stuff does)

videodev.o infrastructure is already present in 2.4.19+ (videodev2.h
isn't through ...).

These days the v4l2 tarball from bytesex.org contains the v4l2-common
and v4l1-compat modules only (and also a copy of the videodev2.h
header file ...).

> > What do you think, should it be possible to
> > compile dvb-kernel drivers for linux >= 2.4.19 _without_
> > replacing some of the original modules?

Yes.

  Gerd

-- 
sigfault


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index