HVR-950Q and MythTV: Now working….

After three nights of debugging various issues, I now have the analog side of the HVR-950Q working properly with MythTV.

Special thanks go out to Janne Grunau for promptly merging my patch providing UYVY support to MythTV:


I will be setting up a tree this weekend with the 950q fixes. In the end, we had a power management bug in the au8522, the MythTV issue described above, and the saturation/hue controls not being implemented causing spurious errors in the mythbackend log. There is also a popping in the audio that occurs when changing channels (because I’m not controlling the au8522’s softmute properly), but that is a minor issue and I will take care of it.

Thanks go out to both Zaphod Beeblebrox and Nate Goergen for providing logs/traces as well to them and everybody else for their patience in waiting for me to finally get an environment setup to debug the problem.

9 thoughts on “HVR-950Q and MythTV: Now working….

  1. hi, sorry to bother but you seem to be very knowledgeable concerning the hvr950q driver, i thought perhaps you might be able to shine some light on a problem i’m seeing, i just upgraded my system to karmic and i just got a new 950q, but it looks like the driver is failing to load -> so the firmware is not loading
    [ 49.192854] tveeprom 0-0050: Hauppauge model 72001, rev B3F0, serial# 6929662
    [ 49.192867] tveeprom 0-0050: MAC address is 00-0D-FE-69-BC-FE
    [ 49.192876] tveeprom 0-0050: tuner model is Xceive XC5000 (idx 150, type 76)
    [ 49.192886] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
    [ 49.192895] tveeprom 0-0050: audio processor is AU8522 (idx 44)
    [ 49.192903] tveeprom 0-0050: decoder processor is AU8522 (idx 42)
    [ 49.192911] tveeprom 0-0050: has no radio, has IR receiver, has no IR transmitter
    [ 49.192919] hauppauge_eeprom: hauppauge eeprom: model=72001
    [ 49.232678] au8522 0-0047: creating new instance
    [ 49.232688] au8522_decoder creating new instance…
    [ 49.349182] tuner 0-0061: chip found @ 0xc2 (au0828)
    [ 49.524022] eth0: no IPv6 routers present
    [ 49.569249] xc5000 0-0061: creating new instance
    [ 49.574360] xc5000: Device not found at addr 0x61 (0xffff)
    [ 49.574374] xc5000 0-0061: destroying instance
    [ 49.575438] au8522 0-0047: attaching existing instance
    [ 49.586555] xc5000 0-0061: creating new instance
    [ 49.591736] xc5000: Device not found at addr 0x61 (0xffff)
    [ 49.591751] xc5000 0-0061: destroying instance
    [ 49.592160] DVB: registering new adapter (au0828)
    [ 49.592172] DVB: registering adapter 0 frontend 0 (Auvitek AU8522 QAM/8VSB Frontend)…
    [ 49.592926] Registered device AU0828 [Hauppauge HVR950Q]
    uname -a
    2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux


  2. Hi Devin,

    Thanks for your reply. Yes, I tried on windows, doesn’t work. I’m sending it back in hopes of a replacement. The tech from Hauppauge suggested that I not use the extension cable and try wintv 6, but I don’t think this is the problem. Do you think this could be the problem?
    Another odd thing is when I attached this device to my cable source, i got a nasty ground loop sound coming from my sound card. Funny thing though, this sound was always there in windows and only there in linux during a reboot. Maybe something to do with the sound card init in linux. Anyway, probably alot more information than you needed.

    Thanks alot for your reply, and all of your hard work on the driver. I look forward to using this driver with good hardware soon!

    • Tim,

      Yeah, if it doesn’t even work under Windows, then all bets are off for Linux. You might want to try some USB cable *other* than 6″ cable that came with the device, even if it’s just to see if the device detects properly.


  3. Thanks a ton Devin for all your work with the HVR-950Q and MythTV!

    Since you made everything work, I’ve recorded close to 4Tb of (up to) 1080p HD over a pair of rabbit ears here on the east cost.

    Thank you again for all your hard work

  4. I was wondering if you might be able to figure out what’s wrong with my HVR-950q. When I can get it to work, it works just fine, but it seems that after a restart it won’t work for quite a while (unable to determine how long specifically, but in the realm of hours to days). It will work fine under windows after multiple reboots, so I’m wondering if the linux firmware isn’t unloading properly or something. When I start up mythtv again I get the following info from dmesg:

    [ 22.832293] xc5000: xc5000_init()
    [ 22.837041] xc5000: xc5000_is_firmware_loaded() returns False id = 0x2000
    [ 22.837044] xc5000: waiting for firmware upload (dvb-fe-xc5000-1.6.114.fw)…
    [ 22.865012] xc5000: firmware read 12401 bytes.
    [ 22.865015] xc5000: firmware uploading…
    [ 22.865019] xc5000: xc5000_TunerReset()
    [ 27.440072] 8:2:1: endpoint lacks sample rate attribute bit, cannot set.
    [ 27.461883] 8:2:1: endpoint lacks sample rate attribute bit, cannot set.
    [ 27.487738] 8:2:1: endpoint lacks sample rate attribute bit, cannot set.
    [ 31.671477] xc5000: firmware upload complete…
    [ 31.671493] xc5000: xc_initialize()
    [ 36.074720] xc5000: *** ADC envelope (0-1023) = 65535
    [ 36.079462] xc5000: *** Frequency error = 1023984 Hz
    [ 36.084462] xc5000: *** Lock status (0-Wait, 1-Locked, 2-No-signal) = 65535
    [ 36.094082] xc5000: *** HW: V0f.0f, FW: V0f.0f.ffff
    [ 36.098826] xc5000: *** Horizontal sync frequency = 31244 Hz
    [ 36.103575] xc5000: *** Frame lines = 65535
    [ 36.108319] xc5000: *** Quality (0:56dB) = 65535
    [ 36.427140] xc5000: xc5000_is_firmware_loaded() returns True id = 0xffff
    [ 36.427147] xc5000: xc5000_set_params() frequency=629000000 (Hz)
    [ 36.427151] xc5000: xc5000_set_params() ATSC
    [ 36.427154] xc5000: xc5000_set_params() VSB modulation
    [ 36.427158] xc5000: xc5000_set_params() frequency=627250000 (compensated)
    [ 36.427162] xc5000: xc_SetSignalSource(0) Source = ANTENNA
    [ 38.510023] xc5000: xc_SetTVStandard(0x8002,0x00c0)
    [ 38.510029] xc5000: xc_SetTVStandard() Standard = DTV6
    [ 42.900024] xc5000: xc_set_IF_frequency(freq_khz = 6000) freq_code = 0x1800
    [ 45.130023] xc5000: xc_tune_channel(627250000)
    [ 45.130028] xc5000: xc_set_RF_frequency(627250000)
    [ 47.334695] xc5000: *** ADC envelope (0-1023) = 65535
    [ 47.339438] xc5000: *** Frequency error = 1023984 Hz
    [ 47.344186] xc5000: *** Lock status (0-Wait, 1-Locked, 2-No-signal) = 65535
    [ 47.353683] xc5000: *** HW: V0f.0f, FW: V0f.0f.ffff
    [ 47.358427] xc5000: *** Horizontal sync frequency = 31244 Hz
    [ 47.363175] xc5000: *** Frame lines = 65535
    [ 47.367921] xc5000: *** Quality (0:56dB) = 65535

    • Hi Kyle,

      Please send questions of this nature to the linux-media mailing list, so that we can have a threaded discussion that doesn’t clutter up the log comments.



Leave a Reply