Call for testers: HVR-1800/1250/1255 analog support

Well, that was painful. After a full day working with the various cards, I managed to get all of them working.

A couple of caveats:

  • The analog tuner on the HVR-1250 isn’t supported yet. The composite and s-video inputs are working but the mt2131 driver doesn’t have the required support for tuning to analog stations. The analog tuner is supported though on the HVR-1255, 1800 (both retail and OEM), 1850, etc. (since it’s a different chip)
  • While ALSA audio when doing raw capture *is* working, it doesn’t seem to work with tvtime for some reason (I added the original ALSA capture support for tvtime a couple of years ago). It’s not working for any cx23885 device though, and this is not actually a regression. It does work if you do “arecord -D hw:2,0 | aplay”, suggesting it’s just some problem with the way the ALSA parameters are setup in the driver. Fortunately I’m pretty familiar with the tvtime code, so figuring out what is going on here shouldn’t be rocket science. 🙂

The changes themselves can be found at the following tree.

http://git.kernellabs.com/?p=dheitmueller/cx23885_fixes.git;a=shortlog;h=refs/heads/1800_fixes

In addition to the HVR-1800 regression fixes, we’ve finally got analog support for the 1250 and 1255 that can be submitted upstream, which has been a hole in the support matrix for quite some time. Coming up with a set of changes to the cx25840 driver which properly supported all the different board variations ended up being more of a challenge than expected (adding the support while making sure not to break any of the existing boards). In fairness though, Steven did most of the actual work getting it to work in the first place; I just did a bunch of testing and shook out the bugs.

Feedback from users willing to compile the code and test is certainly welcome. This includes if you’re an HVR-1850 user and want to make sure I didn’t break anything. Just bear in mind that this sort of testing is intended for users who are familiar with compiling their own kernel, since doing it wrong can render your system unbootable (and no, I won’t help you figure out your problems with grub or if you end up rendering your system unbootable). Caveat emptor.

Thanks go out to tekdoc for doing a bunch of very useful investigation and git bisecting, as well as Britney Fransen for buying one of the HVR-1800 boards used for testing. And of course thanks to Steven Toth and our friends at Hauppauge for loaning me a handful of other boards to use for regression testing.

7 thoughts on “Call for testers: HVR-1800/1250/1255 analog support

  1. I can confirm these fixes are working on my HVR-1800. Tested with ivtv-tune and test file created with cat /dev/video1 > /tmp/foo.mpg. Also works with tvtime. Thanks Devin!

    Unfortunately it still doesn’t work with MythTV which seems to be unable to tune the card on the analog side. I am still looking into this and would love to hear from anyone else who has experienced the same problem.

  2. UPDATE: I now have it working with MythTV using the raw device but not the mpeg device. There must be something I am missing about the mpeg device but for the moment, I am stumped!

    • Devin Heitmueller

      Hello Tekdoc,

      I suspect there is some sort of bug in the DMA handling that delivers the compressed video to userland. Both I and brfransen have seen I/O errors being returned when attempting to access the MPEG stream, even outside of MythTV.

      I will have to get to the bottom of the problem, but I don’t think this is a regression caused by the patch series.

      Devin

  3. Hello & thank you for this!

    I grabbed the snapshot from tag 1800_fixes and used either an Ubuntu Precise config file by copying /boot/config-$something to /usr/src/1800_fixes_tree/.config I then ran “make oldconfig” and had to answer a few questions. I then tried to compile the kernel but got a few errors that were fixed by looking here: doing a little source file editing: http://permalink.gmane.org/gmane.linux.kernel/1296217. I then ran a “make deb-pkg” and installed the resulting packages. I then had to grab the hvr-1800 firmware from http://steventoth.net/linux/hvr1800/ and replace the one that was installed by ubuntu. Rebooting into the new kernel then worked OK & the card was loaded. Cat /dev/video1 > /tmp/video1.mpg however gave me an error until I ran v4l2-ctl -d /dev/video0 -i 2 (s-video) and v4l2-ctl -d /dev/video1 -i 2 (s-video). I then passed this to a vlc script and it’s all working nicely. VLC is using pvr:/// access module pointing to /dev/video1.

    Thank you for all your hard work!

    Your updated kernel tree, the fixes from the “permalink” url & the firmware from the link above turned a doorstop I bought several years ago into something useful!!! Any estimate as to how long before we see your fixes (& a non-broken firmware) moved into the mainline kernel?

    • I actually forgot to mention my first step: Turning off pci-e 2.0 on the machine I was working on!!!! Apparently the hvr-1800 won’t even show up in lspci until pci-e 1.0 is set in the bios. I know in many machines this simply isn’t possible, but this was an option in the machine (Proliant ML110 G7) that I’m using. Unfortunately this failback ISN’T in the GUI version of the bios, but if you set the bios to CLI mode, it is there.

    • Devin Heitmueller

      Hello Robster,

      Glad to hear you’re having some success.

      The changes went upstream in 3.5 as well as being included in 3.6. There are still some intermittent problem streaming from the MPEG encoder (which may make the card unreliable under MythTV), but that’s a separate issue that still needs to be debugged.

      Devin

Leave a Reply