Hauppauge WinTV-HVR-5500
Jump to navigation
Jump to search
Overview/Features
- PCI-e x1 interface
- Supports DVB-C, DVB-S2, DVB-S, DVB-T, Analog-TV / Video, FM-radio
Components Used
- TDA10071/1 DVB-S2 Demodulator and and FEC Decoder (i2c bus 0, 7bit addr: 0x5, reset via GPIO_8)
- Probably combined with a CX24118A Tuner
- Probably combined with a CX24501 HD/MPEG Decoder
- CX23888 PCI Express Broadcast Audio/Video Decoder with 3D Comb and Analog IF Demodulator, when read correctly from the PCB photo
- EEPROM (i2c bus 0, 7bit addr: 0x50)
- Silicon Labs si2165-GM (Multi-Standard DVB-T and DVB-C Demodulator, i2c bus0, 7bit addr: 0x64, reset via GPIO_9)
- NXP TDA18271 (silicon tuner IC for analog DVB-T and DVB-C, i2c bus1, 7bit addr: 0x60)
Identification
04:00.0 Multimedia video controller: Conexant Systems, Inc. CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (rev 04) Subsystem: Hauppauge computer works Inc. Device c138 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: 64 bytes Interrupt: pin A routed to IRQ 45 Region 0: Memory at d7a00000 (64-bit, non-prefetchable) [size=2M] Capabilities: [40] Express (v1) Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, 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 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <2us, L1 <4us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- Capabilities: [80] Power Management version 3 Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [90] Vital Product Data Unknown small resource type 01, will not decode more. Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee0f00c Data: 4199 Capabilities: [100 v1] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn- Capabilities: [200 v1] Virtual Channel Caps: LPEVC=1 RefClk=100ns PATEntryBits=1 Arb: Fixed+ WRR32+ WRR64+ WRR128- Ctrl: ArbSelect=WRR64 Status: InProgress- Port Arbitration Table [240] <?> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff Status: NegoPending- InProgress- VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable- ID=1 ArbSelect=Fixed TC/VC=00 Status: NegoPending- InProgress-
Making it Work
Not fully supported; DVB-T (merged) and DVB-C (experimental patch) should work with the latest Linux-kernel, modules and firmware(s).
Firmware
cd ~ mkdir get_dvb_firmware cd get_dvb_firmware wget https://raw.githubusercontent.com/torvalds/linux/master/scripts/get_dvb_firmware chmod a+x get_dvb_firmware ./get_dvb_firmware si2165 sudo cp dvb-demod-si2165.fw /lib/firmware/ sudo depmod -a
Drivers
A Linux 3.16 or higher kernel is recommended, because this provides fixes for some required modules.
DVB-C support hasn't been merged yet. There is however a patch (status: not updated for current branch) provided by zzam that should add DVB-C support.
An alternative patch provided by francoism90 for Linux 4.2 is available on his Github.
Switch modes (DVB-C/DVB-T)
Since it is a hybrid card, it may be necessary to select the correct DVB-source:
# dvb-fe-tool --adapter=1 --frontend=0 --set-delsys=DVB-C
Sample Kernel Output
# dmesg [ 225.165026] cx23885: disagrees about version of symbol altera_init [ 225.165134] cx23885: Unknown symbol altera_init (err -22) [ 231.254056] cx23885: module_layout: kernel tainted. [ 231.254147] Disabling lock debugging due to kernel taint [ 231.257328] cx23885 driver version 0.0.4 loaded [ 231.257555] cx23885 0000:01:00.0: enabling device (0000 -> 0002) [ 231.257861] CORE cx23885[0]: subsystem: 0070:c138, board: Hauppauge WinTV-HVR 4400 [card=38,autodetected] [ 231.585799] tveeprom 10-0050: Hauppauge model 121029, rev B3F5, serial# **** [ 231.585895] tveeprom 10-0050: MAC address is 00:0d:fe:8a:5d:3e [ 231.585973] tveeprom 10-0050: tuner model is NXP 18271C2 (idx 155, type 54) [ 231.586061] tveeprom 10-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/ D1/K) ATSC/DVB Digital (eeprom 0xf4) [ 231.586185] tveeprom 10-0050: audio processor is CX23888 (idx 40) [ 231.586262] tveeprom 10-0050: decoder processor is CX23888 (idx 34) [ 231.586340] tveeprom 10-0050: has radio, has IR receiver, has no IR transmitt er [ 231.586430] cx23885[0]: warning: unknown hauppauge model #121029 [ 231.586507] cx23885[0]: hauppauge eeprom: model=121029 [ 231.603973] Chip ID is not zero. It is not a TEA5767 [ 231.604118] tuner 11-0060: Tuner -1 found with type(s) Radio TV. [ 231.604376] tda18271 11-0060: creating new instance [ 231.606534] TDA18271HD/C1 detected @ 11-0060 [ 231.935237] cx23885[0]: registered device video0 [v4l2] [ 231.937179] cx23885[0]: registered device vbi0 [ 231.944390] cx23885[0]: registered ALSA audio device [ 231.944484] cx23885_dvb_register() allocating 1 frontend(s) [ 231.944557] cx23885[0]: cx23885 based dvb card [ 231.962906] i2c i2c-10: a8293: Allegro A8293 SEC attached [ 231.963375] DVB: registering new adapter (cx23885[0]) [ 231.963469] cx23885 0000:01:00.0: DVB: registering adapter 0 frontend 0 (NXP TDA10071)... [ 231.965295] cx23885_dvb_register() allocating 1 frontend(s) [ 231.965418] cx23885[0]: cx23885 based dvb card [ 231.976091] i2c i2c-10: si2165: hardware revision 0x03, chip type 0x07 [ 231.976220] tda18271 11-0060: attaching existing instance [ 231.976637] DVB: registering new adapter (cx23885[0]) [ 231.976709] cx23885 0000:01:00.0: DVB: registering adapter 1 frontend 0 (Sili con Labs Si2165 DVB-T DVB-C)... [ 231.979802] cx23885_dev_checkrevision() Hardware revision = 0xd0 [ 231.979908] cx23885[0]/0: found at 0000:01:00.0, rev: 4, irq: 16, latency: 0, mmio: 0xfe800000 [ 271.659164] i2c i2c-10: si2165: downloading firmware from file 'dvb-demod-si2 165.fw' size=5768 [ 271.662577] i2c i2c-10: si2165: si2165_upload_firmware extracted patch_versio n=0x9a, block_count=0x27, crc_expected=0xcc0a [ 272.749751] i2c i2c-10: si2165: fw load finished