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: