A Linux device-driver for the
saa7146 chipset by Philips-Semiconductors


The saa7146 is a chipset by Philips-Semiconductors (now called NXP) which can be found on different video hardware like analog frame-grabbers, tv-cards, dvb-cards or other custom video boards and professional video-editing-hardware.

There is no real difference between the saa7146 and the 'saa7146a'. The "a" just indicates, that it is a revised version and that some bugs have been fixed. Because of this, I will always refer to the chipset as "saa7146". As far as I know, the latest revision of the saa7146 is revision 3.

The saa7146 is a very universal chipset, so the board-designer has much freedom when constructing "his" board. But as always, engineers don't invent the wheel twice, so there are many similarities: The saa7146 works with standardised digital video-streams rather than video-inputs, so it there is nearly always a video decoder like the saa711x by Philips-Semiconductors present. If the digital video-stream shall be routed to an analog output (say: a TV) again, the 'saa7185' by Philips-Semiconductors can be used. If the hardware is some sort of tv-card, it needs some sort of tuner, too.

But here end the similarites: if the board-designer wants multiple video- and audio-inputs, fancy stereo-decoding or MPEG-Encoding/Decoding, he can do whatever he wants: there are numerous helper-chipsets for these features.

If you have some unidentified chipset on your board, you may be able to find some specifications using the seach engines of the manufacturers.

Feel free to send any suggestions, improvements, bug-reports or questions to michael@mihu.de. This is the preferred way.

Some notes on the saa7111(a), saa7112, saa7113, saa7114, saa7140...


The whole saa711x-family is not directly comparable to the saa7146 and therefore my driver cannot be used with cards that have any of these chipsets on it (e.g. Asus 3800, ...) Here is a short explanation: The saa7146 is an active component, e.g. it is a pci busmaster component which can initiate and process data transfers on the pci bus. The whole saa711x-family in contrast are passive components.

The saa711x is a so-called video-decoder, that means that it decodes an analogue video signal (for example from your vcr) to a digital byte stream. Sometimes and image scaler is present, too, for example on the saa7140. Programming these devices isn't hard at all. They have to be programmed by a master chipset via a simple bus called I2C and do not need to be touched afterwards. They are not pci busmaster capable and therefore cannot be found on the pci bus. They are sort of slave chipsets only.

On most graphic adapters which have fancy video-in and/or video-out capabilities, the pci busmaster chipset is the main graphic chipset (e.g. GeForce2, GeForce3, TNT2, ...). This chipset drives the saa711x as a slave.

So you don't need a driver for the saa711x, but a driver for you graphic adapter that supports the video-in / video-out capabilities. So you should concentrate on finding a driver for that thing first. My driver (and I) cannot help you here! Unfortunately, most companies don't release data sheets for their products into public. But without details about the chipsets and how they are wired together, you are simply out of luck.

Details about the driver


The saa7146 driver and various drivers for specific cards are part of the 2.6 Linux kernel series.

The following carda are supported:

saa7146 based DVB cards

There are some quite popular saa7146 based DVB cards out there, so-called full-featured cards (with an on-board mpeg2-decoder) and budget-cards, which only provide the raw transport stream.

Please refer to the LinuxTV.org project page for detailed download and installation instructions: If you have questions about these DVB cards or DVB in general, please send them to the LinuxTV.org DVB mailinglist.

'Multimedia eXtension Board' by Siemens-Nixdorf

The 'Multimedia eXtension Board' (or short: mxb) is a plain tv-card that was build until October 1998 to supplement the Siemens "Scenic"-PC series. Detailed installation instructions can be found on the

'Orion' and 'Gemini' frame grabber cards by Hexium

For further informations about these cards have a look at the official homepage. The Orion series (aka. HV-PCI6) was released in 1997 and is supported by the hexium_orion driver. It is based on a SAA7146 and SAA7110 video-decoder.

The Gemini series was released in 2001 is supported by the driver called hexium_gemini. It is based on a SAA7146 and a Samsung KS0127B video-decoder instead of the SAA7110. The KS0127B supports faster channel switching time (about 60ms) and both square pixel and CCIR modes. The Gemini Dual series has two KS0127B connected simultaneously to the 2 video-input ports of the saa7146. It's possible to grab and overlay images at the same time, but this is currently not supported.

All cards have the same input numbering. The first input (camera 0) is the farest connector from the PCI bus. The HV-PCI6 and Orion series have two version. The first one has a SVHS connector in the camera 0 position and three BNC connectors. The second version has four BNC connectors.

'CM7326 PC/104-plus frame grabber' by Real Time Devices USA, Inc.

The CM7326 is an image capture card for the industrial 104-pin PC/104 AT bus and is manufactured by Real Time Devices USA, Inc.

For further informations, have a look at the official homepage: Thanks to Miguel Freitas for writing this driver, thanks to François Seingier for testing the driver intensively.

The driver is called cm7326.

'Mediafocus II' by Technisat

The MediafocusII is an analog satellite tv card. Detailed installation instructions can be found on the

Download old drivers


For historical reasons, you can download old versions of the driver (before it was integrated into the Linux kernel) here:

Datasheets and specifications


Direct download of some datasheets:

Windows drivers


Philips-Semiconductors once had a dedicated web-page for the saa7146, but it has been shut down. On that page, you could download sample-drivers for Windows 95 and Windows NT for their demonstration board called 'dpc7146'. For your convenience, I zipped the whole binary stuff that was available on the page. But because of the fact that you are reading my page, I suppose you are not interested in this stuff, right? ;-)