Mailing List archive

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

[linux-dvb] Re: driver files issue



PerezJ@ee.nec.de wrote:
Hello,

I wonder if I can get an answer about the use of some files released under
linux dvb V1.0.0.
The files in  question are the ones located in the "driver" subdirectory.
Files such
dvb_frontend.c and dvb_frontend.h.
The Linux DVB API document does not include any description of using these
files.

Could you please provide some feedback about this question as I have got
the impression that these files
are as "optional layer"  to support some hardware platform?
All files that are linked into dvb-core.o (these are the files in DVB/driver/ or dvb-kernel/linux/media/dvb/dvb-core/) are distributed under the terms of the GNU General Public License since they can get linked statically into the Linux kernel. This license policy was choosen in order to make improvements in the generic code useful for everybody.

Public Include files in DVB/include/linux/dvb/ and dvb-kernel/linux/include/linux/dvb/ are distributed under the terms of the GNU Lesser General Public License.

Lowlevel hardware drivers like the ones e.g. in linux/drivers/media/dvb/ttpci/, linux/drivers/media/dvb/bt8xx/, linux/drivers/media/dvb/b2c2/ can get developed under any license you need if you write them as dynamically loadable modules (binary only if you want) and set the MODULE_LICENSE() tag correctly to "Proprietary".

So you have basically two approaches to develop a proprietary driver:

Either you rewrite everything from scratch and don't use any source file beside the LGPL'd public includes in include/linux/dvb/. In this case you are not allowed to copy'n'paste and reuse any source code beside the API include files.

Or, much simpler: you write a loadable lowlevel hardware driver only like e.g. dvb-ttpci.o, dvb-ttusb-budget.o, dvb-bt8xx.o (all built in build-2.4 in case of a standalone build). In this case you reuse the dvb-core infrastructure (and you're kindly invited to improve things in the generic layer, please feed back changes to the community:) and need only to implement the hardware specific stuff.

Again you must not use any GPL'd code in your binary-only driver, but this should not be too critical, most code in the hardware drivers is not reusable anyway. In order to get an idea of what needs to get implemented for a hardware driver take a look for example in the bt8xx driver, the b2c2 driver or the ttpci or ttusb driver.

hope this answers your question,

Holger



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



Home | Main Index | Thread Index