5.2. PCI drivers¶
The PCI boards are identified by an identification called PCI ID. The PCI ID is actually composed by two parts:
- Vendor ID and device ID;
- Subsystem ID and Subsystem device ID;
The lspci -nn command allows identifying the vendor/device PCI IDs:
$ lspci -nn
...
00:0a.0 Multimedia controller [0480]: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder [1131:7133] (rev d1)
00:0b.0 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)
01:00.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb [14f1:8880] (rev 0f)
02:01.0 Multimedia video controller [0400]: Internext Compression Inc iTVC15 (CX23415) Video Decoder [4444:0803] (rev 01)
02:02.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23418 Single-Chip MPEG-2 Encoder with Integrated Analog Video/Broadcast Audio Decoder [14f1:5b7a]
02:03.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)
...
The subsystem IDs can be obtained using lspci -vn
$ lspci -vn
...
00:0a.0 0480: 1131:7133 (rev d1)
Subsystem: 1461:f01d
Flags: bus master, medium devsel, latency 32, IRQ 209
Memory at e2002000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [40] Power Management version 2
...
At the above example, the first card uses the saa7134 driver, and
has a vendor/device PCI ID equal to 1131:7133 and a PCI subsystem
ID equal to 1461:f01d (see Saa7134 card list).
Unfortunately, sometimes the same PCI subsystem ID is used by different
products. So, several media drivers allow passing a card= parameter,
in order to setup a card number that would match the correct settings for
an specific board.
The current supported PCI/PCIe cards (not including staging drivers) are listed below[1].
| [1] | some of the drivers have sub-drivers, not shown at this table |
| Driver | Name |
|---|---|
| altera-ci | Altera FPGA based CI module |
| b2c2-flexcop-pci | Technisat/B2C2 Air/Sky/Cable2PC PCI |
| bt878 | DVB/ATSC Support for bt878 based TV cards |
| bttv | BT8x8 Video For Linux |
| cobalt | Cisco Cobalt |
| cx18 | Conexant cx23418 MPEG encoder |
| cx23885 | Conexant cx23885 (2388x successor) |
| cx25821 | Conexant cx25821 |
| cx88xx | Conexant 2388x (bt878 successor) |
| ddbridge | Digital Devices bridge |
| dm1105 | SDMC DM1105 based PCI cards |
| dt3155 | DT3155 frame grabber |
| dvb-ttpci | AV7110 cards |
| earth-pt1 | PT1 cards |
| earth-pt3 | Earthsoft PT3 cards |
| hexium_gemini | Hexium Gemini frame grabber |
| hexium_orion | Hexium HV-PCI6 and Orion frame grabber |
| hopper | HOPPER based cards |
| ipu3-cio2 | Intel ipu3-cio2 driver |
| ivtv | Conexant cx23416/cx23415 MPEG encoder/decoder |
| ivtvfb | Conexant cx23415 framebuffer |
| mantis | MANTIS based cards |
| meye | Sony Vaio Picturebook Motion Eye |
| mxb | Siemens-Nixdorf ‘Multimedia eXtension Board’ |
| netup-unidvb | NetUP Universal DVB card |
| ngene | Micronas nGene |
| pluto2 | Pluto2 cards |
| saa7134 | Philips SAA7134 |
| saa7164 | NXP SAA7164 |
| smipcie | SMI PCIe DVBSky cards |
| solo6x10 | Bluecherry / Softlogic 6x10 capture cards (MPEG-4/H.264) |
| sta2x11_vip | STA2X11 VIP Video For Linux |
| tw5864 | Techwell TW5864 video/audio grabber and encoder |
| tw686x | Intersil/Techwell TW686x |
| tw68 | Techwell tw68x Video For Linux |
| zoran | Zoran-36057/36067 JPEG codec |
Some of those drivers support multiple devices, as shown at the card lists below: