Support for its digital side was added to Hg in September 2009.
Features a hardware MPEG2 encoder and dual tuners (DVB-T/Analog TV Input)
Based on as far as I know: PCIe dual channel hybrid PC TV PCV520/20
- TDA18271 - Tuner (http://www.nxp.com/acrobat_download/literature/9397/75015474.pdf)
- In Latest HG
- NXP SAA7164E - NXP PCI Express dual-channel, PC TV capture/encode IC
- In Development by Steven Toth
- In Latest HG
02:00.0 Multimedia controller: Philips Semiconductors Unknown device 7164 (rev 81) Subsystem: Hauppauge computer works Inc. Unknown device 8901 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 255 Region 0: Memory at fd400000 (64-bit, non-prefetchable) [size=4M] Region 2: Memory at fd000000 (64-bit, non-prefetchable) [size=4M] Capabilities:  Message Signalled Interrupts: Mask- 64bit+ Queue=0/4 Enable- Address: 0000000000000000 Data: 0000 Capabilities:  Express (v1) Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <256ns, L1 <1us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- LnkCap: Port #1, Speed 2.5GT/s, Width x2, ASPM L0s L1, Latency L0 <4us, L1 <64us ClockPM- Suprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- Capabilities:  Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [7c] Vendor Specific Information <?> Capabilities:  Vendor Specific Information <?> Capabilities:  Virtual Channel <?>
Making it Work
wget http://www.steventoth.net/linux/hvr22xx/22xxdrv_27086.zip wget http://www.steventoth.net/linux/hvr22xx/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip wget http://www.steventoth.net/linux/hvr22xx/extract.sh sh extract.sh cp *fw /lib/firmware # for some linux distros, might need the following line instead of the above cp *fw /lib/firmware/`uname -r`
For stable tree
hg clone http://kernellabs.com/hg/saa7164-stable/ cd saa7164-stable
For development tree
hg clone http://kernellabs.com/hg/~stoth/saa7164-dev/ cd saa7164-dev
MythDora: With a fresh Mythdora 10 install, chances are this won't work. Install Mercurial, and try again.
yum install mercurial
Repeat the hg command that didn't work before.
make menuconfig edit as needed but should have all enabled that is needed make make install reboot
Every time the linux kernel is upgraded to a new version, you'll need to reboot and then repeat the above steps.
MythDora: With a fresh Mythdora 10 install, chances are the above won't work until you install the kernel source code.
yum install kernel-devel
Repeat the make commands above after installing the kernel source.
Sample kernel output
saa7164 driver loaded ACPI: PCI Interrupt Link [APC5] enabled at IRQ 16 saa7164 0000:02:00.0: PCI INT A -> Link[APC5] -> GSI 16 (level, low) -> IRQ 16 CORE saa7164: dev->lmmio = 0xf9800000 CORE saa7164: dev->lmmio2 = 0xf9c80000 CORE saa7164: dev->bmmio = 0xf9800000 CORE saa7164: dev->bmmio2 = 0xf9c80000 CORE saa7164: subsystem: 0070:8901, board: Hauppauge WinTV-HVR2200 [card=6,autodetected] saa7164/0: found at 0000:02:00.0, rev: 129, irq: 16, latency: 0, mmio: 0xfd400000 saa7164 0000:02:00.0: setting latency timer to 64 saa7164_downloadfirmware() no first image saa7164_downloadfirmware() Waiting for firmware upload (v4l-saa7164-1.0.2.fw) saa7164 0000:02:00.0: firmware: requesting v4l-saa7164-1.0.2.fw saa7164_downloadfirmware() firmware read 3978608 bytes. saa7164_downloadfirmware() firmware loaded. Firmware file header part 1: .FirmwareSize = 0x0 .BSLSize = 0x0 .Reserved = 0x3cb57 .Version = 0x3 saa7164_downloadfirmware() SecBootLoader.FileSize = 3978608 saa7164_downloadfirmware() FirmwareSize = 0x1fd6 saa7164_downloadfirmware() BSLSize = 0x0 saa7164_downloadfirmware() Reserved = 0x0 saa7164_downloadfirmware() Version = 0x51cc1 saa7164_downloadimage() Image downloaded, booting... saa7164_downloadimage() Image booted successfully. starting firmware download(2) saa7164_downloadimage() Image downloaded, booting... saa7164_downloadimage() Image booted successfully. firmware download complete. saa7164: i2c bus 0 registered saa7164: i2c bus 1 registered saa7164: i2c bus 2 registered tveeprom 3-0000: Hauppauge model 89619, rev B2F2, serial# 3019750 tveeprom 3-0000: MAC address is 00-0D-FE-2E-13-E6 tveeprom 3-0000: tuner model is NXP 18271C2_716x (idx 152, type 4) tveeprom 3-0000: TV standards PAL(B/G) NTSC(M) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc) tveeprom 3-0000: audio processor is SAA7164 (idx 43) tveeprom 3-0000: decoder processor is CX23887A (idx 39) tveeprom 3-0000: has radio saa7164: Hauppauge eeprom: model=89619 tda18271 4-0060: creating new instance TDA18271HD/C2 detected @ 4-0060 DVB: registering new adapter (saa7164) DVB: registering adapter 2 frontend 0 (NXP TDA10048HN DVB-T)... tda18271 5-0060: creating new instance TDA18271HD/C2 detected @ 5-0060 DVB: registering new adapter (saa7164) DVB: registering adapter 3 frontend 0 (NXP TDA10048HN DVB-T)... tda10048_firmware_upload: waiting for firmware upload (dvb-fe-tda10048-1.0.fw)... i2c-adapter i2c-4: firmware: requesting dvb-fe-tda10048-1.0.fw tda10048_firmware_upload: firmware read 24878 bytes. tda10048_firmware_upload: firmware uploading tda10048_firmware_upload: firmware uploaded tda18271: performing RF tracking filter calibration tda18271: RF tracking filter calibration complete tda10048_firmware_upload: waiting for firmware upload (dvb-fe-tda10048-1.0.fw)... i2c-adapter i2c-5: firmware: requesting dvb-fe-tda10048-1.0.fw tda10048_firmware_upload: firmware read 24878 bytes. tda10048_firmware_upload: firmware uploading tda10048_firmware_upload: firmware uploaded tda18271: performing RF tracking filter calibration tda18271: RF tracking filter calibration complete
MythDora: A non-programmer, Linux and MythTV newbie wrote the added details about MythDora 10. I got the driver to work using Kernel 184.108.40.206-170.2.113.fc10.x86_64, by installing Mercurial and kernel-devel (plus a few other guesses, documented in the Discussion tab). Other research suggested I needed ncurses and ncurses-devel, and gcc, but I'm not sure of those are really required. Hopefully someone comes along and corrects any errors and incorporates additional information in this main article, which I found most useful.