Archived:LinuxTV Drivers

From LinuxTVWiki
Revision as of 17:41, 27 November 2007 by CityK (talk | contribs) (fixed link)
Jump to navigation Jump to search

please review this text and insert the information at some better places... thanks!!


Introduction

We host a public CVS for drivers for various DVB PCI cards. During time there were various branches and attempts to restructure the driver and DVB API. The following list gives a short overview.

The Branches in Detail

The DVB Code for 2.4 Kernels

The stable driver for 2.4 kernels is located in the CVS module DVB.

The dvb-kernel Branch

The main development work is currently being done in dvb-kernel, because this is the driver that goes into the 2.5/2.6 Linux kernel. dvb-kernel can also be compiled for the Linux 2.4 kernel. dvb-kernel includes a new saa7146 driver written by Michael Hunold, which allows sharing between analog TV cards and DVB cards. He also wrote a V4L2 based driver for the Siemens-Nixdorf 'Multimedia eXtension board' (a small analog TV extension board for the Siemens-Nixdorf DVB-C ff card) which is included there. While being at it he also split the old av7110 driver into two distinct drivers for the av7110-less Budget cards, and one for the 'full-featured' cards| . Florian Schirmer contributed a driver for Bt8xx based DVB cards based on the work done by Peter Hettkamp for the Pinnacle PCTV card in the NEWSTRUCT branch.

The History and older Branches

The "DVB" CVS module originally contained the driver source up to the siemens_dvb-0.9.4 release. We then decided to restructure the driver sources in order to make it easier to support different hardware without having to copy common code.

Therefore the NEWSTRUCT branch has been created. Around this time we also made some modifications to the frontend API. Later, when NEWSTRUCT was deemed stable enough, it was merged into the trunk of the CVS version tree ("HEAD"). Development on NEWSTRUCT was then abandoned.

Before we sent the DVB driver to Alan Cox for inclusion in the Linux 2.5 kernel, we decided to clean up some inconsistencies in the naming of various types in the API header files. This was done in both dvb-kernel and DVB.

include/linux/dvb/version.h

now defines

DVB_API_VERSION == 3

Currently used Branches

All in all, today there are now several relevant CVS lines:

  • DVB: Stable driver for 2.4 kernel users.
  • dvb-kernel: Current development driver. (v3 API)
  • dvb-kernel-v4: The upcoming v4 API implementation.
  • dvb-apps: The standalone package of test utilities.

There may still be some bits and pieces in both the NEWSTRUCT branch and the old DVB line from a year-or-so ago, which are missing from current DVB or dvb-kernel. Also, some drivers from DVB must be ported to dvb-kernel at some time.