[linux-dvb] SAA 7162 PCI Express support update / NXP semi-"GPL" and copyrights

Richard Dale richard at interlink.com.au
Mon May 7 09:56:25 CEST 2007


Hi everybody who has asked about SAA7162 drivers in the past. Here's an
update on how far I've got.

--------------------
Background
--------------------
I have an SAA7162-based PCI Express quad tuner card (DigitalNow! QuattroS
Dual DVB-T/Dual DVB-S).  There are no GPL'd drivers for the SAA7162
interface chip.  It has been difficult to contact Philips/NXP to get any
drivers but we are now getting some success.

--------------------
Drivers from NXP
--------------------
I've received a pre-release of the SAA7162 driver set from NXP.  I didn't
sign any NDA and they didn't put any restrictions on me.  However, they are
making noise about asking me if I've signed an NDA.

The kernel source code provided has the following line in there:
MODULE_LICENSE ("GPL")).   It's questionable whether this actually means the
code is GPL as there are plenty of Philips/NXP copyright messages all over
the place.  They're now sending me an updated driver but I'm sure it'll have
the same copyright statements within it.

--------------------
Issues with Drivers from NXP
--------------------
In essence, the pre-release driver from NXP require rewriting from scratch.
It's simply not production quality.
The problem as I see the current code is as follows:
1.  It appears to be C++ code basically from their Windows BDA driver,
horribly wedged into the Linux V4L/DVB infrastructure.  It's a poor fit.
2.  It doesn't compile with anything other than kernel 2.6.14 (we're well
past this version now)
3.  It doesn't support SMP (most systems these days are SMP)
4.  It doesn't support 64 bit
5.  It has other bugs/issues too

--------------------
Possible options to develop driver
--------------------
We have five options now:
1.  Ask NXP to open source their driver so that the entire Linux community
can contribute and enhance theirs or create a new GPL'd driver.
2.  Ask NXP for permission for myself to use existing driver Linux driver
from NXP as a reference to create a new GPL'd driver
3.  Obtain from NXP a full data sheet of all of the components on the card
(every register, line etc.) and ignore their reference driver.
4.  I work with another coder to develop a "clean room implementation" of
the driver.
5.  Throw everything out and try and reverse engineer the card using a
Windows box.

I'm currently trying option #1 and trying to convince them that the Linux
community can actually help them and they will subsequently sell more chips.

Cheers,
Richard.




More information about the linux-dvb mailing list