Hardware supported by the linuxtv.org DVB drivers
=================================================

  Generally, the DVB hardware manufacturers frequently change the
  frontends (i.e. tuner / demodulator units) used, usually without
  changing the product name, revision number or specs. Some cards
  are also available in versions with different frontends for
  DVB-S/DVB-C/DVB-T. Thus the frontend drivers are listed seperately.

  Note 1: There is no guarantee that every frontend driver works
  out of the box with every card, because of different wiring.

  Note 2: The demodulator chips can be used with a variety of
  tuner/PLL chips, and not all combinations are supported. Often
  the demodulator and tuner/PLL chip are inside a metal box for
  shielding, and the whole metal box has its own part number.


o Frontends drivers: 
  - dvb_dummy_fe: for testing...
  DVB-S:
   - ves1x93		: Alps BSRV2 (ves1893 demodulator) and dbox2 (ves1993)
   - cx24110		: Conexant HM1221/HM1811 (cx24110 or cx24106 demod, cx24108 PLL)
   - grundig_29504-491	: Grundig 29504-491 (Philips TDA8083 demodulator), tsa5522 PLL
   - mt312		: Zarlink mt312 or Mitel vp310 demodulator, sl1935 or tsa5059 PLL
   - stv0299		: Alps BSRU6 (tsa5059 PLL), LG TDQB-S00x (tsa5059 PLL),
   			  LG TDQF-S001F (sl1935 PLL), Philips SU1278 (tua6100 PLL), 
			  Philips SU1278SH (tsa5059 PLL), Samsung TBMU24112IMB
  DVB-C:
   - ves1820		: various (ves1820 demodulator, sp5659c or spXXXX PLL)
   - at76c651		: Atmel AT76c651(B) with DAT7021 PLL
  DVB-T:
   - alps_tdlb7		: Alps TDLB7 (sp8870 demodulator, sp5659 PLL)
   - alps_tdmb7		: Alps TDMB7 (cx22700 demodulator)
   - grundig_29504-401	: Grundig 29504-401 (LSI L64781 demodulator), tsa5060 PLL
   - tda1004x		: Philips tda10045h (td1344 or tdm1316l PLL)
   - nxt6000 		: Alps TDME7 (MITEL SP5659 PLL), Alps TDED4 (TI ALP510 PLL),
               		  Comtech DVBT-6k07 (SP5730 PLL)
               		  (NxtWave Communications NXT6000 demodulator)
   - sp887x		: Microtune 7202D
   - dib3000mb	: DiBcom 3000-MB demodulator
  DVB-S/C/T:
   - dst		: TwinHan DST Frontend


o Cards based on the Phillips saa7146 multimedia PCI bridge chip:
  - TI AV7110 based cards (i.e. with hardware MPEG decoder):
    - Siemens/Technotrend/Hauppauge PCI DVB card revision 1.1, 1.3, 1.5, 1.6, 2.1
      (aka Hauppauge Nexus)
  - "budget" cards (i.e. without hardware MPEG decoder):
    - Technotrend Budget / Hauppauge WinTV-Nova PCI Cards
    - SATELCO Multimedia PCI
    - KNC1 DVB-S, Typhoon DVB-S, Terratec Cinergy 1200 DVB-S (no CI support)
    - Typhoon DVB-S budget
    - Fujitsu-Siemens Activy DVB-S budget card

o Cards based on the B2C2 Inc. FlexCopII/IIb/III:
  - Technisat SkyStar2 PCI DVB card revision 2.3, 2.6B, 2.6C

o Cards based on the Conexant Bt8xx PCI bridge:
  - Pinnacle PCTV Sat DVB
  - Nebula Electronics DigiTV
  - TwinHan DST
  - Avermedia DVB-T

o Technotrend / Hauppauge DVB USB devices:
  - Nova USB
  - DEC 2000-T, 3000-S, 2540-T

o DiBcom DVB-T USB based devices:
  - Twinhan VisionPlus VisionDTV USB-Ter DVB-T Device
  - HAMA DVB-T USB device
  - CTS Portable (Chinese Television System)
  - KWorld V-Stream XPERT DTV DVB-T USB
  - JetWay DTV DVB-T USB
  - ADSTech Instant TV DVB-T USB
  - Ultima Electronic/Artec T1 USB TVBOX (AN2135 and AN2235)
  - Compro Videomate DVB-U2000 - DVB-T USB
  - Grandtec USB DVB-T
  - Avermedia AverTV DVBT USB
  - DiBcom USB DVB-T reference device (non-public)
  - Yakumo DVB-T mobile USB2.0
  - DiBcom USB2.0 DVB-T reference device (non-public)

o Experimental support for the analog module of the Siemens DVB-C PCI card
