Skip to content


SAA7164 Analog support complete?

First draft is available from http://kernellabs.com/hg/~stoth/saa7164-v4l

Firmware is available from http://www.steventoth.net/linux/hvr22xx/firmwares/4019072

Comments welcome.

Posted in hvr-2200, hvr-2250, saa7164.


60 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Mohammad Bahathir Hashim says

    Well done. GNU/Linux is getting better HW supports.
    Sorry if I am a bit out of topic, but, I want your opinion based on your experiences. Which TV/DVB-T card/USB stick(s) that you prefer or the best, based on stability and performance.

    I want to buy another card/stick based on your answer in addition to my current PCTV-340e, and with your driver which I managed to patch and build on latest Linux kernel 2.6.34

    TIA.

    • Steven says

      @Mohammad, thanks. Devin can probably comment on the DVB-T/USB recommendations. He works closely in the PCTV sticks.

  2. slipnippler says

    Steven, Thank you so much for all of your hard work to get this driver working! YOU ROCK!

  3. Markus says

    Great to hear! I am buying the card today and can not wait to test out the code. I saw this on the 31st and was hoping to see other comments but its OK, I am moving forward either way.

  4. Steven says

    @slipnippler, great handle, thanks.
    @Markus, thanks.

  5. Jeremy says

    Steven, I knew this day would come! Soon, I can remove the rabbit ears from the card (only 4 digital over the air stations here), and use cable coax, or my STB. I am having problems though it seems. I installed driver and firmware as previously, and getting this startup info which looks good:

    [ 16.666020] saa7164_downloadimage() Image downloaded, booting…
    [ 16.767020] saa7164_downloadimage() Image booted successfully.
    [ 16.767027] starting firmware download(2)
    [ 18.524019] saa7164_downloadimage() Image downloaded, booting…
    [ 20.746021] saa7164_downloadimage() Image booted successfully.
    [ 20.746027] firmware download complete.
    [ 20.816477] tveeprom 2-0000: Hauppauge model 88061, rev C4F2, serial# 7047917
    [ 20.816482] tveeprom 2-0000: MAC address is 00:0d:fe:6b:8a:ed
    [ 20.816486] tveeprom 2-0000: tuner model is NXP 18271C2_716x (idx 152, type 4)
    [ 20.816490] tveeprom 2-0000: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0×88)
    [ 20.816493] tveeprom 2-0000: audio processor is SAA7164 (idx 43)
    [ 20.816496] tveeprom 2-0000: decoder processor is SAA7164 (idx 40)
    [ 20.816500] tveeprom 2-0000: has radio, has IR receiver, has no IR transmitter
    [ 20.816503] saa7164[0]: Hauppauge eeprom: model=88061
    [ 21.179194] tda18271 3-0060: creating new instance
    [ 21.183526] TDA18271HD/C2 detected @ 3-0060
    [ 21.384208] DVB: registering new adapter (saa7164)
    [ 21.384217] DVB: registering adapter 0 frontend 0 (Samsung S5H1411 QAM/8VSB Frontend)…
    [ 21.667936] tda18271 4-0060: creating new instance
    [ 21.672343] TDA18271HD/C2 detected @ 4-0060
    [ 21.869552] tda18271: performing RF tracking filter calibration
    [ 24.051809] tda18271: RF tracking filter calibration complete
    [ 24.053467] DVB: registering new adapter (saa7164)
    [ 24.053475] DVB: registering adapter 1 frontend 0 (Samsung S5H1411 QAM/8VSB Frontend)…
    [ 24.053978] saa7164[0]: registered device video1 [mpeg]
    [ 24.283768] saa7164[0]: registered device video2 [mpeg]
    [ 24.494204] saa7164[0]: registered device vbi0 [vbi]
    [ 24.494241] saa7164[0]: registered device vbi1 [vbi]

    However, Kaffeine locks up when I try to channel search via NTSC, and I get this log:

    ug 2 20:52:58 Linux kernel: [84104.176957] tda18271: performing RF tracking filter calibration
    Aug 2 20:53:01 Linux kernel: [84106.408433] tda18271: RF tracking filter calibration complete
    Aug 2 20:53:01 Linux kernel: [84106.419773] saa7164[0]-FWMSG: 0-23:22:25.900;thread 0xd181f363;mhStreamHdl;Received SET_CUR DMA State to ACQUIRE
    Aug 2 20:53:01 Linux kernel: [84106.419779]
    Aug 2 20:53:01 Linux kernel: [84106.534451] saa7164[0]-FWMSG: 0-23:22:25.916;thread 0xd181f363;mhStreamHdl;Received SET_CUR DMA State to PAUSE
    Aug 2 20:53:01 Linux kernel: [84106.534456]
    Aug 2 20:53:01 Linux kernel: [84106.534458] 0-23:22:25.916;thread 0xd181f363;mhStreamHdl;Received SET_CUR DMA State to RUN
    Aug 2 20:53:01 Linux kernel: [84106.534461]
    Aug 2 20:53:30 Linux kernel: [84136.004881] saa7164[0]-FWMSG: 0-23:22:55.400;thread 0xd1830363;tmDecoderHalBitField;CR3699 tmBitField_WriteWithOffset Conflict: on offset 0xc SA 0xfa0
    Aug 2 20:54:01 Linux kernel: [84166.922981] saa7164[0]-FWMSG: 0-23:23:26.300;thread 0xd181f363;mhStreamHdl;Received SET_CUR DMA State to PAUSE
    Aug 2 20:54:01 Linux kernel: [84166.922987]
    Aug 2 20:54:01 Linux kernel: [84167.028930] saa7164[0]-FWMSG: 0-23:23:26.466;thread 0xd181f363;mhStreamHdl;Received SET_CUR DMA State to ACQUIRE
    Aug 2 20:54:01 Linux kernel: [84167.028934]
    Aug 2 20:54:01 Linux kernel: [84167.028936] 0-23:23:26.466;thread 0xd181f363;mhStreamHdl;Received SET_CUR DMA State to STOP
    Aug 2 20:54:01 Linux kernel: [84167.028939]
    Aug 2 20:54:01 Linux kernel: [84167.028940] 0-23:23:26.466;thread 0xd181f363;MPS;MPS is now Idle
    Aug 2 20:54:01 Linux kernel: [84167.028942]
    Aug 2 20:54:55 Linux kernel: [84221.005780] ————[ cut here ]————
    Aug 2 20:54:55 Linux kernel: [84221.005792] kernel BUG at /home/jeremy/saa7164-v4l/v4l/saa7164-buffer.c:274!
    Aug 2 20:54:55 Linux kernel: [84221.005799] invalid opcode: 0000 [#1] PREEMPT SMP
    Aug 2 20:54:55 Linux kernel: [84221.005806] last sysfs file: /sys/devices/platform/abituguru.224/temp1_input
    Aug 2 20:54:55 Linux kernel: [84221.005811] CPU 1
    Aug 2 20:54:55 Linux kernel: [84221.005814] Modules linked in: abituguru ip6t_LOG xt_tcpudp xt_pkttype ipt_LOG xt_limit snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device edd nvidia(P) ip6t_REJECT nf_conntrack_ipv6 ip6table_raw xt_NOTRACK ipt_REJECT xt_state iptable_raw cpufreq_conservative iptable_filter cpufreq_userspace cpufreq_powersave powernow_k8 mperf ip6table_mangle nf_conntrack_netbios_ns nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 ip_tables ip6table_filter ip6_tables x_tables fuse loop dm_mod tda18271 s5h1411 sr_mod cdrom sg firewire_ohci firewire_core crc_itu_t snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm gspca_stv06xx ohci1394 snd_timer saa7164 gspca_main dvb_core ieee1394 floppy snd v4l2_common forcedeth soundcore snd_page_alloc edac_core edac_mce_amd i2c_nforce2 button pcspkr k8temp videodev v4l1_compat v4l2_compat_ioctl32 tveeprom ext4 jbd2 crc16 sd_mod fan processor pata_amd ata_generic sata_nv libata scsi_mod thermal thermal_sys [last unloaded: preloadtrace]
    Aug 2 20:54:55 Linux kernel: [84221.005924]
    Aug 2 20:54:55 Linux kernel: [84221.005931] Pid: 13820, comm: kaffeine Tainted: P 2.6.34-12-desktop #1 AN8 Series(NF-CK804)/
    Aug 2 20:54:55 Linux kernel: [84221.005937] RIP: 0010:[] [] saa7164_buffer_cfg_port+0xd6/0×260 [saa7164]
    Aug 2 20:54:55 Linux kernel: [84221.005962] RSP: 0018:ffff88000a26fc68 EFLAGS: 00010202
    Aug 2 20:54:55 Linux kernel: [84221.005966] RAX: ffff88000a26e000 RBX: ffff8800bdb05a48 RCX: 0000000000000014
    Aug 2 20:54:55 Linux kernel: [84221.005971] RDX: ffffc900120802cc RSI: 0000000000000000 RDI: ffff8800beedf5c0
    Aug 2 20:54:55 Linux kernel: [84221.005976] RBP: ffff8800bdb00000 R08: 0000000000008000 R09: ffff88000a26fca4
    Aug 2 20:54:55 Linux kernel: [84221.005981] R10: 0000160000000000 R11: 0000000000000001 R12: ffff8800bc9aef40
    Aug 2 20:54:55 Linux kernel: [84221.005985] R13: ffff8800bdb05ae8 R14: ffff8800bdb05ac8 R15: ffffc90012c62000
    Aug 2 20:54:55 Linux kernel: [84221.005991] FS: 00007fab3e29d760(0000) GS:ffff880001f00000(0000) knlGS:00000000f68bc860
    Aug 2 20:54:55 Linux kernel: [84221.005997] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    Aug 2 20:54:55 Linux kernel: [84221.006001] CR2: 00007f38dc7cd000 CR3: 0000000025091000 CR4: 00000000000006e0
    Aug 2 20:54:55 Linux kernel: [84221.006006] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    Aug 2 20:54:55 Linux kernel: [84221.006011] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Aug 2 20:54:55 Linux kernel: [84221.006016] Process kaffeine (pid: 13820, threadinfo ffff88000a26e000, task ffff880007d164c0)
    Aug 2 20:54:55 Linux kernel: [84221.006021] Stack:
    Aug 2 20:54:55 Linux kernel: [84221.006024] ffff8800bdb00000 ffff8800bdb05a48 ffff8800bdb07030 ffff8800bdb00000
    Aug 2 20:54:55 Linux kernel: [84221.006032] ffff88004cf968a0 ffffffffa02fe6b9 ffffffff8110582b ffffc90012b46000
    Aug 2 20:54:55 Linux kernel: [84221.006040] ffff8800bdb070e0 ffff8800bdb07388 0000000000000014 ffffffffa02cc6ab
    Aug 2 20:54:55 Linux kernel: [84221.006049] Call Trace:
    Aug 2 20:54:55 Linux kernel: [84221.006093] [] saa7164_dvb_start_feed+0xb9/0×300 [saa7164]
    Aug 2 20:54:55 Linux kernel: [84221.006120] [] dmx_ts_feed_start_filtering+0x5b/0xe0 [dvb_core]
    Aug 2 20:54:55 Linux kernel: [84221.006144] [] dvb_dmxdev_start_feed+0xca/0×140 [dvb_core]
    Aug 2 20:54:55 Linux kernel: [84221.006161] [] dvb_dmxdev_filter_start+0x27e/0x3f0 [dvb_core]
    Aug 2 20:54:55 Linux kernel: [84221.006185] [] dvb_demux_do_ioctl+0×564/0x6e0 [dvb_core]
    Aug 2 20:54:55 Linux kernel: [84221.006205] [] dvb_usercopy+0xa7/0x1a0 [dvb_core]
    Aug 2 20:54:55 Linux kernel: [84221.006219] [] vfs_ioctl+0x9e/0xc0
    Aug 2 20:54:55 Linux kernel: [84221.006233] [] do_vfs_ioctl+0×70/0x3d0
    Aug 2 20:54:55 Linux kernel: [84221.006243] [] sys_ioctl+0×80/0xa0
    Aug 2 20:54:55 Linux kernel: [84221.006257] [] system_call_fastpath+0×16/0x1b
    Aug 2 20:54:55 Linux kernel: [84221.006270] [] 0x7fab3a8a9e87
    Aug 2 20:54:55 Linux kernel: [84221.006274] Code: e1 fd ff ff 0f b6 43 4f 8d 55 01 39 e8 7c 1e 4d 39 e5 49 8b 04 24 75 d5 4c 89 f7 e8 d5 8a 19 e1 5b 5d 41 5c 41 5d 31 c0 41 5e c3 0b 0f 0b 4c 8d 65 60 31 c0 48 c7 c7 00 42 31 a0 4c 89 e6 e8
    Aug 2 20:54:55 Linux kernel: [84221.006330] RIP [] saa7164_buffer_cfg_port+0xd6/0×260 [saa7164]
    Aug 2 20:54:55 Linux kernel: [84221.006343] RSP
    Aug 2 20:54:55 Linux kernel: [84221.006370] —[ end trace 09571ce918f6e0f5 ]—

    I cannot seem to find any channels in MythTV, and ultimately that application freezes also. Something I am doing wrong?

  6. Maarten says

    Great Steven! Now I can get rid of windows media center and use mythtv.
    I will do some testing as soon as I can.

  7. Markus says

    Steven, thanks again for your work getting this card to work and all your other work too.
    This page http://www.mythtv.org/wiki/Hauppauge_HVR-2250 still shows this page http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-2200 as good instructions for installation. Is this still accurate or do you have something better or different for getting both analog and digital working?

  8. Steven says

    I’ve had a couple of OOPS reports in saa7164-buffer.c. I’m hoping to investigate this weekend. I can’t seem to repro it, or I have yet to find the right steps.

    • Pepe says

      I am one of the people that that reported this issue. If there is anything else I can do to help, let me know.

  9. Erol says

    Thank you so much Steven.

    I bought this card on eBay few months ago and I have been patiently waiting for analogue support. I can’t wait to test it.

    This is really great work.

  10. Erol says

    Tried it, without success.

    Maybe someone has a clue what is going on? It states that firmware image is corrupted, but that is the one linked here.

    [ 65.669095] saa7164 driver loaded
    [ 65.669155] saa7164 0000:04:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
    [ 65.669324] CORE saa7164[0]: subsystem: 0070:8900, board: Hauppauge WinTV-HVR2200 [card=5,autodetected]
    [ 65.669330] saa7164[0]/0: found at 0000:04:00.0, rev: 129, irq: 18, latency: 0, mmio: 0xf9c00000
    [ 65.669337] saa7164 0000:04:00.0: setting latency timer to 64
    [ 65.669341] IRQ 18/saa7164[0]: IRQF_DISABLED is not guaranteed on shared IRQs
    [ 65.687424] saa7164_downloadfirmware() no first image
    [ 65.687437] saa7164_downloadfirmware() Waiting for firmware upload (NXP7164-2010-03-10.1.fw)
    [ 65.687441] saa7164 0000:04:00.0: firmware: requesting NXP7164-2010-03-10.1.fw
    [ 65.955323] saa7164_downloadfirmware() firmware read 4019072 bytes.
    [ 65.955326] saa7164_downloadfirmware() firmware loaded.
    [ 65.955328] Firmware file header part 1:
    [ 65.955329] .FirmwareSize = 0×0
    [ 65.955330] .BSLSize = 0×0
    [ 65.955332] .Reserved = 0x3d538
    [ 65.955333] .Version = 0×3
    [ 65.955335] saa7164_downloadfirmware() SecBootLoader.FileSize = 4019072
    [ 65.955342] saa7164_downloadfirmware() FirmwareSize = 0x1fd6
    [ 65.955344] saa7164_downloadfirmware() BSLSize = 0×0
    [ 65.955345] saa7164_downloadfirmware() Reserved = 0×0
    [ 65.955347] saa7164_downloadfirmware() Version = 0x1661c00
    [ 71.468023] saa7164_downloadimage() image corrupt
    [ 71.468036] bootloader d/l has failed
    [ 71.468042] Failed to boot firmware, no features registered

    • Steven says

      Cold boot and try again.

      • Erol says

        Nope cold boot didn’t help.

        Is there anything I can do to help debugging this issue ?

        • Steven says

          Nothing I can think of today. I’d have to pull a model 8900 from my supply and run a specific test. It’s working well for all my cards AFAIK. Never rule out a last minute bug of course.

          • Erol says

            Sorry to bother you once again Steven, I was wondering did you have a chance to test model 8900?

            I’ve tested this card on two different machines, the second one gives me additional error info:

            [ 88.036237] saa7164 driver loaded
            [ 88.036301] saa7164 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
            [ 88.036549] CORE saa7164[0]: subsystem: 0070:8900, board: Hauppauge WinTV-HVR2200 [card=5,autodetected]
            [ 88.036555] saa7164[0]/0: found at 0000:02:00.0, rev: 129, irq: 16, latency: 0, mmio: 0xfd400000
            [ 88.036562] saa7164 0000:02:00.0: setting latency timer to 64
            [ 88.036565] IRQ 16/saa7164[0]: IRQF_DISABLED is not guaranteed on shared IRQs
            [ 88.196018] saa7164_downloadfirmware() no first image
            [ 88.196028] saa7164_downloadfirmware() Waiting for firmware upload (NXP7164-2010-03-10.1.fw)
            [ 88.196032] saa7164 0000:02:00.0: firmware: requesting NXP7164-2010-03-10.1.fw
            [ 89.048753] saa7164_downloadfirmware() firmware read 4019072 bytes.
            [ 89.048756] saa7164_downloadfirmware() firmware loaded.
            [ 89.048758] Firmware file header part 1:
            [ 89.048760] .FirmwareSize = 0×0
            [ 89.048761] .BSLSize = 0×0
            [ 89.048762] .Reserved = 0x3d538
            [ 89.048763] .Version = 0×3
            [ 89.048765] saa7164_downloadfirmware() SecBootLoader.FileSize = 4019072
            [ 89.048770] saa7164_downloadfirmware() FirmwareSize = 0x1fd6
            [ 89.048772] saa7164_downloadfirmware() BSLSize = 0×0
            [ 89.048773] saa7164_downloadfirmware() Reserved = 0×0
            [ 89.048775] saa7164_downloadfirmware() Version = 0x1661c00
            [ 90.768308] modprobe: page allocation failure. order:10, mode:0xc0d0

            Any ideas?

  11. Eric says

    Hi!
    I was wondering if someone could point me to the instructions to build/compile this on Ubuntu. I would gladly test it out… But unsure where to start!. Anxious to get of Windows and using Linux!

    Thanks!

    • Erol says

      hg clone http://kernellabs.com/hg/~stoth/saa7164-v4l
      cd saa7164-v4l
      make menuconfig

      Be sure to disable FireDV (CONFIG_DVB_FIREDTV) because it will not finish compiling.

      after successfull compilation, do

      make install

      And reboot your machine.

      Hope these pointers will help.

      • lobosolo says

        after i run make menuconfig i get a menu with options but i am not sure what to select or do on that menu. can you provide some insight for newbies on that ?

  12. Jeremy says

    When trying to scan ATSC broadcast, MythTV freezes, and has to be killed. Here is the log:

    Aug 6 07:34:06 Linux kernel: [ 1316.076889] saa7164[0]-FWMSG: 0-00:22:36.783;thread 0xd1806363;mhStreamHdl;Received SET_CUR DMA State to ACQUIRE
    Aug 6 07:34:06 Linux kernel: [ 1316.076894]
    Aug 6 07:34:06 Linux kernel: [ 1316.076895] 0-00:22:36.800;thread 0xd1806363;mhStreamHdl;Received SET_CUR DMA State to PAUSE
    Aug 6 07:34:06 Linux kernel: [ 1316.076898]
    Aug 6 07:34:06 Linux kernel: [ 1316.076899] 0-00:22:36.800;thread 0xd1806363;mhStreamHdl;Received SET_CUR DMA State to RUN
    Aug 6 07:34:06 Linux kernel: [ 1316.076902]
    Aug 6 07:34:06 Linux kernel: [ 1316.076903] 0-00:22:3
    Aug 6 07:34:06 Linux kernel: [ 1316.079600] saa7164[0]-FWMSG: .800;thread 0xd1806363;mhStreamHdl;Received SET_CUR DMA State to PAUSE
    Aug 6 07:34:06 Linux kernel: [ 1316.079604]
    Aug 6 07:34:06 Linux kernel: [ 1316.256464] ————[ cut here ]————
    Aug 6 07:34:06 Linux kernel: [ 1316.256477] kernel BUG at /home/jeremy/saa7164-v4l/v4l/saa7164-buffer.c:274!
    Aug 6 07:34:06 Linux kernel: [ 1316.256484] invalid opcode: 0000 [#1] PREEMPT SMP
    Aug 6 07:34:06 Linux kernel: [ 1316.256490] last sysfs file: /sys/devices/platform/abituguru.224/temp1_input
    Aug 6 07:34:06 Linux kernel: [ 1316.256495] CPU 0
    Aug 6 07:34:06 Linux kernel: [ 1316.256498] Modules linked in: ip6t_LOG xt_tcpudp xt_pkttype ipt_LOG xt_limit abituguru snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device edd ip6t_REJECT nf_conntrack_ipv6 nvidia(P) ip6table_raw xt_NOTRACK ipt_REJECT xt_state iptable_raw iptable_filter cpufreq_conservative cpufreq_userspace ip6table_mangle cpufreq_powersave powernow_k8 mperf nf_conntrack_netbios_ns nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 ip_tables ip6table_filter ip6_tables x_tables fuse loop dm_mod tda18271 s5h1411 sr_mod cdrom sg firewire_ohci firewire_core crc_itu_t saa7164 snd_intel8x0 dvb_core snd_ac97_codec ac97_bus gspca_stv06xx v4l2_common gspca_main ohci1394 snd_pcm snd_timer videodev v4l1_compat k8temp edac_core edac_mce_amd forcedeth ieee1394 snd pcspkr floppy v4l2_compat_ioctl32 tveeprom button soundcore snd_page_alloc i2c_nforce2 ext4 jbd2 crc16 sd_mod fan processor pata_amd ata_generic sata_nv libata scsi_mod thermal thermal_sys [last unloaded: preloadtrace]
    Aug 6 07:34:06 Linux kernel: [ 1316.256605]
    Aug 6 07:34:06 Linux kernel: [ 1316.256612] Pid: 6412, comm: mythtv-setup Tainted: P 2.6.34-12-desktop #1 AN8 Series(NF-CK804)/
    Aug 6 07:34:06 Linux kernel: [ 1316.256618] RIP: 0010:[] [] saa7164_buffer_cfg_port+0xd6/0×260 [saa7164]
    Aug 6 07:34:06 Linux kernel: [ 1316.256643] RSP: 0018:ffff880084bd1c68 EFLAGS: 00010202
    Aug 6 07:34:06 Linux kernel: [ 1316.256648] RAX: ffff880084bd0000 RBX: ffff8800bdf87760 RCX: 0000000000000014
    Aug 6 07:34:06 Linux kernel: [ 1316.256653] RDX: ffffc900121006ec RSI: 0000000000000000 RDI: ffff8800befc90c0
    Aug 6 07:34:06 Linux kernel: [ 1316.256658] RBP: ffff8800bdf80000 R08: 0000000000008000 R09: ffff880084bd1ca4
    Aug 6 07:34:06 Linux kernel: [ 1316.256663] R10: 0000160000000000 R11: 0000000000000001 R12: ffff8800befc9140
    Aug 6 07:34:06 Linux kernel: [ 1316.256667] R13: ffff8800bdf87800 R14: ffff8800bdf877e0 R15: ffffc90012dc7000
    Aug 6 07:34:06 Linux kernel: [ 1316.256674] FS: 00007fc04ffff710(0000) GS:ffff880001e00000(0000) knlGS:00000000f686d860
    Aug 6 07:34:06 Linux kernel: [ 1316.256679] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    Aug 6 07:34:06 Linux kernel: [ 1316.256683] CR2: 00007fc04fffdf58 CR3: 00000000bc5a1000 CR4: 00000000000006f0
    Aug 6 07:34:06 Linux kernel: [ 1316.256688] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    Aug 6 07:34:06 Linux kernel: [ 1316.256693] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Aug 6 07:34:06 Linux kernel: [ 1316.256699] Process mythtv-setup (pid: 6412, threadinfo ffff880084bd0000, task ffff8800849c8840)
    Aug 6 07:34:06 Linux kernel: [ 1316.256703] Stack:
    Aug 6 07:34:06 Linux kernel: [ 1316.256706] ffff8800bdf80000 ffff8800bdf87760 ffff8800bdf88d48 ffff8800bdf80000
    Aug 6 07:34:06 Linux kernel: [ 1316.256714] ffff8800898d0b60 ffffffffa03916b9 ffffffff8110582b ffffc90012cab000
    Aug 6 07:34:06 Linux kernel: [ 1316.256722] ffff8800bdf88df8 ffff8800bdf890a0 0000000000000014 ffffffffa035d6ab
    Aug 6 07:34:06 Linux kernel: [ 1316.256730] Call Trace:
    Aug 6 07:34:06 Linux kernel: [ 1316.256777] [] saa7164_dvb_start_feed+0xb9/0×300 [saa7164]
    Aug 6 07:34:06 Linux kernel: [ 1316.256805] [] dmx_ts_feed_start_filtering+0x5b/0xe0 [dvb_core]
    Aug 6 07:34:06 Linux kernel: [ 1316.256828] [] dvb_dmxdev_start_feed+0xca/0×140 [dvb_core]
    Aug 6 07:34:06 Linux kernel: [ 1316.256845] [] dvb_dmxdev_filter_start+0x27e/0x3f0 [dvb_core]
    Aug 6 07:34:06 Linux kernel: [ 1316.256869] [] dvb_demux_do_ioctl+0×564/0x6e0 [dvb_core]
    Aug 6 07:34:06 Linux kernel: [ 1316.256889] [] dvb_usercopy+0xa7/0x1a0 [dvb_core]
    Aug 6 07:34:06 Linux kernel: [ 1316.256903] [] vfs_ioctl+0x9e/0xc0
    Aug 6 07:34:06 Linux kernel: [ 1316.256917] [] do_vfs_ioctl+0×70/0x3d0
    Aug 6 07:34:06 Linux kernel: [ 1316.256928] [] sys_ioctl+0×80/0xa0
    Aug 6 07:34:06 Linux kernel: [ 1316.256943] [] system_call_fastpath+0×16/0x1b
    Aug 6 07:34:06 Linux kernel: [ 1316.256957] [] 0x7fc070de3e87
    Aug 6 07:34:06 Linux kernel: [ 1316.256961] Code: e1 fd ff ff 0f b6 43 4f 8d 55 01 39 e8 7c 1e 4d 39 e5 49 8b 04 24 75 d5 4c 89 f7 e8 d5 5a 10 e1 5b 5d 41 5c 41 5d 31 c0 41 5e c3 0b 0f 0b 4c 8d 65 60 31 c0 48 c7 c7 00 72 3a a0 4c 89 e6 e8
    Aug 6 07:34:06 Linux kernel: [ 1316.257008] RIP [] saa7164_buffer_cfg_port+0xd6/0×260 [saa7164]
    Aug 6 07:34:06 Linux kernel: [ 1316.257008] RSP
    Aug 6 07:34:06 Linux kernel: [ 1316.257067] —[ end trace 00b87d1d57e761e2 ]—

    Ideas?

  13. J. Snell says

    Another unsuccessful attempt to add to your list I’m afraid. My card is detected fine with the stable branch, but under the v4l branch I get this:

    [ 26.508838] saa7164 driver loaded
    [ 26.508914] saa7164 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
    [ 26.508917] saa7164[0]: Your board isn’t known (yet) to the driver.
    [ 26.508918] saa7164[0]: Try to pick one of the existing card configs via
    [ 26.508918] saa7164[0]: card= insmod option. Updating to the latest
    [ 26.508919] saa7164[0]: version might help as well.
    [ 26.509353] saa7164[0]: Here are valid choices for the card= insmod option:
    [ 26.509486] saa7164[0]: card=0 -> Unknown
    [ 26.509582] saa7164[0]: card=1 -> Generic Rev2
    [ 26.509679] saa7164[0]: card=2 -> Generic Rev3
    [ 26.509775] saa7164[0]: card=3 -> Hauppauge WinTV-HVR2250
    [ 26.509877] saa7164[0]: card=4 -> Hauppauge WinTV-HVR2200
    [ 26.509978] saa7164[0]: card=5 -> Hauppauge WinTV-HVR2200
    [ 26.510111] saa7164[0]: card=6 -> Hauppauge WinTV-HVR2200
    [ 26.510212] saa7164[0]: card=7 -> Hauppauge WinTV-HVR2250
    [ 26.510314] saa7164[0]: card=8 -> Hauppauge WinTV-HVR2250
    [ 26.510635] CORE saa7164[0]: subsystem: 0070:8940, board: Unknown [card=0,autodetected]
    [ 26.510641] saa7164[0]/0: found at 0000:03:00.0, rev: 129, irq: 17, latency: 0, mmio: 0xf9000000
    [ 26.510647] saa7164 0000:03:00.0: setting latency timer to 64
    [ 26.510650] IRQ 17/saa7164[0]: IRQF_DISABLED is not guaranteed on shared IRQs
    [ 26.510660] saa7164_initdev() Unsupported board detected, registering without firmware

    The card shows up under the stable branch as card number 9 (SAA7164_BOARD_HAUPPAUGE_HVR2200_4). Why is this card no longer present in the v4l branch?

  14. Jeremy says

    Still having problems. When trying to do a channel scan in MythTV for digital broadcast, I get kernel messages, and I have to kill MythTV. Kaffeine does the same thing when scanning. Hopefully this comment will post, as my last two never did (showed waiting for moderation for days)

    kernel BUG at /home/jeremy/saa7164-v4l/v4l/saa7164-buffer.c:274!
    invalid opcode: 0000 [#1] PREEMPT SMP
    last sysfs file: /sys/devices/system/cpu/cpu1/cache/index2/shared_cpu_map
    CPU 1

    Ideas?

  15. Nestor says

    Hi, the module loads ok, but i can’t set PAL-Nc. how i do it?
    I’m in Argentina an olny have analog PAL-Nc cable.

    Thanks for the great work!!!!!

  16. Said says

    I get following error when trying to tune
    kernel: [ 49.873018] saa7164[0]-FWMSG: 0-00:01:15.833;thread 0xd1833363;dbgtmmhSysPwstMan;switching off analog reception…

  17. Joama says

    Hi everyone,
    First off, thanks for the great work on the drivers Steven, we are really excited to get analog support for the 2250. It seems like the saa7164-stable branch on kernellabs got screwed up somehow recently. It used to compile fine. Now it doesn’t, and it says the last change was in January which is clearly not right. Unfortunately I didn’t have a backup of the stable branch :( Anyway, my wife and I have been trying to test out the new analog driver using mythTV with Linux kernel 2.6.34 but are having some errors. We’re not sure if the errors are related to mythTV or the driver/firmware and thought someone might have some suggestions for other software to test them against. If anyone is interested a full writeup of what we tried and the error we encountered can be found here. http://ubuntuforums.org/showthread.php?t=1553634

    Thanks,
    Joama

  18. Markus says

    I have followed the directions at http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-2200 very closely but mythtv fails to open probe info, and scanning for inputs says “failed to open the card”. Any ideas?
    Is there a log that would tell us better what I am missing

    • maynardp says

      I’m not having any luck with MythTV either, but I did get the card working using these new drivers and IVTV & Mplayer.

      If you are using Ubuntu, you can install ivtv-utils and mplayer using
      sudo apt-get install ivtv-utils
      sudo apt-get install mplayer

      Then you can test playback directly from the command line.

      To change the channel (for us-cable) use
      ivtv-tune -c
      (if you are not in us or canada using analog cable, you’ll have to read the man page for ivtv-tune. its pretty simple)

      To play tv (on my system at least)
      v4l2-ctl -i 0; mplayer /dev/video0 -ac mp3 -vc ffmpeg12

      where:
      v4l2-ctl -i 0
      changes to the 1st tuner on the card; and
      mplayer /dev/video0
      starts mplayer using the video output device assigned (by steven’s drivers) to the 1st tuner
      -ac mp3
      tells mplayer to use mp3 audio codec (best I’ve found so far for my system with this driver); and
      -vc ffmpeg12
      tells mplayer to use ffmpeg12 for it’s video codec. (again best I found so far)
      You can omit both -ac and -vc and their parameters and the system will choose defaults, but I found my audio and video to be choppy when I do this.

      Hope this helps you at least test if the card is working. If I figure out MythTV, I’ll let you know.

  19. Vinnie says

    Hooray! Thanks for your continued work on this Steven!

    Note – in the case of Fedora 13 with latest devel hg checkout/build and my C3F2 revision 2250, it wanted a different firmware file (not NXP7164-2010-03-10.1.fw) — my dmesg output showed the driver looking for v4l-saa7164-1.0.3-3.fw. So I looked around a bit in the parent directory structure of the URL given above and found this file here:

    http://www.steventoth.net/linux/hvr22xx/firmwares/4038864/

    and it loads and inits happily:

    saa7164 driver loaded
    saa7164 0000:0b:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
    CORE saa7164[0]: subsystem: 0070:8891, board: Hauppauge WinTV-HVR2250 [card=7,autodetected]
    saa7164[0]/0: found at 0000:0b:00.0, rev: 129, irq: 16, latency: 0, mmio: 0xdf800000
    saa7164 0000:0b:00.0: setting latency timer to 64
    saa7164_downloadfirmware() no first image
    saa7164_downloadfirmware() Waiting for firmware upload (v4l-saa7164-1.0.3-3.fw)
    saa7164 0000:0b:00.0: firmware: requesting v4l-saa7164-1.0.3-3.fw
    saa7164_downloadfirmware() firmware read 4038864 bytes.
    saa7164_downloadfirmware() firmware loaded.
    Firmware file header part 1:
    .FirmwareSize = 0×0
    .BSLSize = 0×0
    .Reserved = 0x3da0d
    .Version = 0×3
    saa7164_downloadfirmware() SecBootLoader.FileSize = 4038864
    saa7164_downloadfirmware() FirmwareSize = 0x1fd6
    saa7164_downloadfirmware() BSLSize = 0×0
    saa7164_downloadfirmware() Reserved = 0×0
    saa7164_downloadfirmware() Version = 0x1d1c
    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.
    tveeprom 1-0000: Hauppauge model 88061, rev C3F2, serial# 6447687
    tveeprom 1-0000: MAC address is 00:0d:fe:62:62:47
    tveeprom 1-0000: tuner model is NXP 18271C2_716x (idx 152, type 4)
    tveeprom 1-0000: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0×88)
    tveeprom 1-0000: audio processor is SAA7164 (idx 43)
    tveeprom 1-0000: decoder processor is SAA7164 (idx 40)
    tveeprom 1-0000: has radio, has IR receiver, has no IR transmitter
    saa7164[0]: Hauppauge eeprom: model=88061
    tda18271 2-0060: creating new instance
    TDA18271HD/C2 detected @ 2-0060
    DVB: registering new adapter (saa7164)
    DVB: registering adapter 0 frontend 0 (Samsung S5H1411 QAM/8VSB Frontend)…
    tda18271 3-0060: creating new instance
    TDA18271HD/C2 detected @ 3-0060
    tda18271: performing RF tracking filter calibration
    tda18271: RF tracking filter calibration complete
    DVB: registering new adapter (saa7164)
    DVB: registering adapter 1 frontend 0 (Samsung S5H1411 QAM/8VSB Frontend)…
    tda18271: performing RF tracking filter calibration
    tda18271: RF tracking filter calibration complete

    The question now is (noob alert!), how do I try to use the analog tuner? I’ve been using scandvb etc. to find channels to set up with Myth for the digital channels, but there is a large block of other channels said to be analog that I’m hoping to tune now. Not sure which device type I should tell Myth to use, how to address it, etc. If there is a suitable (similar enough) tutorial for general scanning of analog channels with the 2250 I could follow, can someone recommend one? Or maybe just what device(s) to tell Myth (and other utils, like cmdline ones) to use?

    Getting ready to try to a scandvb on the usual ATSC center frequencies (like I used to find the digital channels the tuner can tune) with /dev/dvb/adapterX/frontend* in case that is what I should do but I suspect I probably need to read/address this differently.. ?

    Thanks again!
    Vinnie

    • Vinnie says

      OK did a little searching and it looks like I probably shouldn’t expect to find analog channels on /dev/dvb/adapterX/frontendY. I looked at how the MythTV wiki describes setting up the analog side of the HVR-1600 to try to get some clues. (Link: http://www.mythtv.org/wiki/Hauppauge_HVR-1600 )

      Obviously it’s different hardware (so probably can’t 100% follow this), but the section on analog capture card setup suggests setting up an IVTV MPEG2 type, pointing at /dev/video0, while the digital tuner is setup as expected as a DVB v3 (like the HVR-2250). Still gives me some idea I should be looking for a different device under /dev to point myth at for the analog. But I don’t have any /dev/video* devices with the various saa drivers loaded, nothing new under /dev/dvb/ (and the ones already there don’t find anything on a probe).

  20. Pepe says

    I have the latest drivers running fine. When accessing DVB feeds, the card locks up, but with NTSC it works fine, from the command line.

    I have tried configuring the Analog part on MythTV but I get the error:

    DevRdB(/dev/video0) Error: Problem reading fd(36)

    Has anyone seen that?

    • Steven says

      Myth was working fine for me today, just remember that you can’t use video0 and adapter0/frontend0 at the same time. You’ll need to put those input a new input group so that myth avoids using them concurrently.

      I’m also chasing down a analog-to-digital-to-analog channel change bug.

  21. Vinnie says

    Ah, looking at the definition of SAA7164_BOARD_HAUPPAUGE_HVR2250_2 in saa7164-cards.c, there don’t seem to be analog demodulators defined in the card info (or very possible I don’t know what I’m looking at, just started looking at the sources this morning). I can keep waiting, no rush. However please let me know if there is anything you need me to test or help with.

    • Vinnie says

      Silly me, looks like I was hg cloning from the wrong source. Once I did an ‘hg clone’ from the correct source (the one noted at the very top of this blog post), built from that and installed/rebooted, it looked for the firmware file described (NXP7164-2010-03-10.1.fw), and also created /dev/video[0,1] and /dev/vbi[0,1] devices.

      Myth can now “see” the devices as well but will need to tinker a bit with tuner options etc.

      Thanks again Steven for your work!

  22. James says

    Is there a way to pass in the /dev/videoX devices the adapter should grab? For those of us with multiple cards that would be great.

    • Steven says

      Not yet. You should be able to do this via udev rules based on the PCI slot id.

  23. Matías says

    Hi! What’s the current status of the driver??? I’m from South America where PAL mode is used.

  24. andrew says

    Hi, slightly off-topic but I am having a lot of trouble tuning on the hvr-2200, its real hit and miss I can tune all channels except for sbs (australia), card works fine in windows. What i’m wondering is there any future updates coming for digital tuning? I have the 89619 model (rev D3F2). Works great with the stable tree but sbs tuning is a nightmare. Its been turning my hair grey for a few weeks now. Hoping someone here could help :)

    • Steven says

      I think the demod driver has a tuning offset issue. Try tuning +-125Khz for more success.

  25. killero says

    so steven not trying to be mean just that is been almost a year since your last post about hvr-1800? gotta buy the 2250 instead :( ?

  26. Carlos says

    G R E A T :)
    Just had a chance to test it, and finally, after a long wait, got my first 10 seconds of video out of my 2250!
    Nestor, it just works. I don’t know how, but it decodes color PAL-N, even though
    the driver message does not report it as doable.
    Thanks a bunch.

    • Nestor says

      Carlos how do you test it?
      I can’t set norm to PAL

      In scantv does not appear as an option
      nestor@tele:~$ scantv
      please select your TV norm
      0: NTSC-M
      1: NTSC-M-JP
      2: NTSC-443
      nr ?

      In tvtime-scanner i have invalid argument

      nestor@tele:~$ tvtime-scanner
      Leyendo la configuración de /etc/tvtime/tvtime.xml
      Escaneando usando la norma de TV PAL.
      videoinput: Driver refuses to set norm: Argumento inválido
      videoinput: Card failed to allocate capture buffers: Argumento inválido

      I think PAL is not supported yet

  27. Carlos says

    Well, may be it’s going to be complicated because the driver does not show
    that Pal is ok. I just tuned using ivtv-tune and read from /dev/video0 to a file.
    That works. Somehow the card is recognizing the format, cause I have color
    ok and audio.

  28. Carlos says

    Oh well, my box froze when trying to get vlc running again to stream over mcast
    reading from /dev/video0. Grr. Steven: any update on that OOPS ?
    My kernel left no marks, just hanged like a locked irq.

    • Steven says

      Pal should be fine. See the new tree, bug is fixed.

  29. Jeremy says

    Hi Steven,
    I was curious if you had seen a possible problem people have seen in dmesg while trying at the new firmware and driver at the following Ubuntu thread:

    http://ubuntuforums.org/showthread.php?p=9803387#post9803387

    I would also appreciate it if you confirmed the installing procedure at the same thread.
    Thanks,

    • Ryan says

      I, too, am seeing the same problem. I’m running Ubuntu 9.10 Server with a WinTV-HVR-2250 card. Here are some parts from my dmesg output that look relevent:

      [ 17.035626] saa7164 driver loaded
      [ 17.035710] saa7164 0000:03:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
      [ 17.035917] CORE saa7164[0]: subsystem: 0070:8891, board: Hauppauge WinTV-HVR2250 [card=7,autodetected]
      [ 17.035925] saa7164[0]/0: found at 0000:03:00.0, rev: 129, irq: 16, latency: 0, mmio: 0xef400000
      [ 17.035931] saa7164 0000:03:00.0: setting latency timer to 64
      [ 17.035937] IRQ 16/saa7164[0]: IRQF_DISABLED is not guaranteed on shared IRQs
      [ 17.193274] saa7164_downloadfirmware() no first image
      [ 17.193343] saa7164_downloadfirmware() Waiting for firmware upload (NXP7164-2010-03-10.1.fw)
      [ 17.193348] saa7164 0000:03:00.0: firmware: requesting NXP7164-2010-03-10.1.fw
      [ 17.825880] saa7164_downloadfirmware() firmware read 4019072 bytes.
      [ 17.825884] saa7164_downloadfirmware() firmware loaded.
      [ 17.825961] saa7164_downloadfirmware() SecBootLoader.FileSize = 4019072
      [ 17.825968] saa7164_downloadfirmware() FirmwareSize = 0x1fd6
      [ 17.825970] saa7164_downloadfirmware() BSLSize = 0×0
      [ 17.825972] saa7164_downloadfirmware() Reserved = 0×0
      [ 17.825974] saa7164_downloadfirmware() Version = 0x1661c00
      [ 24.708260] saa7164_downloadimage() Image downloaded, booting…
      [ 24.812293] saa7164_downloadimage() Image booted successfully.
      [ 26.940282] saa7164_downloadimage() Image downloaded, booting…
      [ 28.604069] saa7164_downloadimage() Image booted successfully.
      [ 28.641030] saa7164[0]: Hauppauge eeprom: model=88061
      [ 29.345198] DVB: registering new adapter (saa7164)
      [ 32.739931] DVB: registering new adapter (saa7164)
      [ 32.740271] saa7164[0]: registered device video0 [mpeg]
      [ 32.971110] saa7164[0]: registered device video1 [mpeg]
      [ 33.181580] saa7164[0]: registered device vbi0 [vbi]
      [ 33.181606] saa7164[0]: registered device vbi1 [vbi]
      [ 43.214653] saa7164[0]-FWMSG: 0-00:01:15.933;thread 0xd1833363;dbgtmmhSysPwstMan;switching off analog reception…
      [ 164.639037] saa7164[0]-FWMSG: 0-00:03:17.350;thread 0xd1832363;gDbgHealthMon;Warning: tmmhTimeSetTimerAlarm 1 changed*****************
      [ 857.934854] saa7164[0]-FWMSG: 0-00:14:50.566;thread 0xd1832363;gDbgHealthMon;Warning: tmmhTimeSetTimerAlarm 2 changed*****************
      [ 903.534864] saa7164[0]-FWMSG: 0-00:15:36.183;thread 0xd1806363;mhStreamHdl;Received SET_CUR DMA State to ACQUIRE
      [ 903.538915] saa7164[0]-FWMSG: .200;thread 0xd1806363;mhStreamHdl;Received SET_CUR DMA State to PAUSE
      [ 903.647909] saa7164[0]-FWMSG: 0-00:15:36.350;thread 0xd1806363;mhStreamHdl;Received SET_CUR DMA State to ACQUIRE
      [ 903.701964] kernel BUG at /home/rowens/vid/new/saa7164-v4l/v4l/saa7164-buffer.c:274!
      [ 903.702039] last sysfs file: /sys/module/saa7164/initstate
      [ 903.702066] Modules linked in: tda18271 s5h1411 vboxnetadp vboxnetflt vboxdrv tun reiserfs jfs saa7164 dvb_core v4l2_common videodev v4l1_compat ftdi_sio usbserial nf_conntrack_ipv4 nf_defrag_ipv4 xt_tcpudp xt_conntrack nf_conntrack iptable_filter ip_tables x_tables joydev ppdev dell_wmi dcdbas parport_serial parport_pc tveeprom i3000_edac psmouse lp radeon ttm drm serio_raw agpgart parport i2c_algo_bit edac_core raid10 raid456 raid6_pq async_xor async_memcpy async_tx xor skge usbhid raid1 raid0 multipath linear tg3
      [ 903.702480] EIP is at saa7164_buffer_cfg_port+0xa4/0×250 [saa7164]
      [ 903.702913] [] ? saa7164_dvb_start_feed+0xa1/0×310 [saa7164]
      [ 903.703672] EIP: [] saa7164_buffer_cfg_port+0xa4/0×250 [saa7164] SS:ESP 0068:f401fd98
      [ 957.538746] saa7164[0]-FWMSG: 0-00:16:30.183;thread 0xd1832363;gDbgHealthMon;Warning: tmmhTimeSetTimerAlarm 3 changed*****************

      Following that, I get an ongoing series of those gDbgHealthMon warnings that continue as long as the system is running (although the number before the word “changed” seems to increment with each message). Any ideas?

    • Steven says

      Hi Jeremy, the procedure is good – although you’ll want to pull the recent changes that fix one or two issues.

      • Markus says

        Steven, thanks for your work on this firmware, we are all very appreciative. Can you tell us how/where to get the ‘new thread’. I went through all the files at http://www.steventoth.net/linux/hvr22xx and I see nothing new since the 1st analog fw

        • Steven says

          Firmware updates on steventoth.net? Not sure what you mean. I’m referring to a new posting on this blog from yesterday. Updates into the existing saa7164-v4l tree will help you.

          • Markus says

            Sorry, I did not know if it was “-stable” (I do know better), “-dev”, “-v4l” but I did hunt around and found the “-v4l” was the files you updated.
            hg clone http://kernellabs.com/hg/~stoth/saa7164-v4l

            but I am still getting the “switching off analog reception” message.
            saa7164[0]-FWMSG: 0-00:01:16.683;thread 0xd1833363;dbgtmmhSysPwstMan;switching off analog reception…

            and analog does not work, how do we switch it on?

          • Steven says

            It’s on.

            use v4l2-ctl to tune the device and then mplayer to play analog from it.

            v4l2-ctl -d /dev/video0 –set-freq=55.250
            mplayer /dev/video0

  30. Garth says

    1st, great work Steven, I was waiting for analog support before getting mine.

    Unfortunately, it doesn’t work at all for me. An error occurs when the driver is loaded which seems to break a few v4l related things. I’ll finish this message with the dmesg output.
    What I did notice is that the /dev/dvb/* stuff is there, but none of the /dev/video*.

    Also, with this driver version, my other capture card (pvr-350) doesn’t work at all (ivtv complains about a few v4l2 unknown symbols). Although when the 2250 is plugged in, ivtv doesn’t even get loaded.

    Kernel is 2.6.34-gentoo-r6, the kernel’s multimedia support is disabled.
    Also, the dmesg log says that v4l1_compat is already loaded, but lsmod shows that it’s not. As for the taint mention, it’s the nvidia’s driver.

    Thanks for any help.
    Garth

    dmesg log:
    v4l2_compat_ioctl32: exports duplicate symbol v4l2_compat_ioctl32 (owned by kernel)
    v4l2_compat_ioctl32: exports duplicate symbol v4l2_compat_ioctl32 (owned by kernel)
    v4l1_compat: module is already loaded
    v4l1_compat: module is already loaded
    videodev: exports duplicate symbol video_unregister_device (owned by kernel)
    videodev: exports duplicate symbol video_unregister_device (owned by kernel)
    saa7164 driver loaded
    saa7164 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
    CORE saa7164[0]: subsystem: 0070:8851, board: Hauppauge WinTV-HVR2250 [card=7,autodetected]
    saa7164[0]/0: found at 0000:03:00.0, rev: 129, irq: 17, latency: 0, mmio: 0xec800000
    saa7164 0000:03:00.0: setting latency timer to 64
    IRQ 17/saa7164[0]: IRQF_DISABLED is not guaranteed on shared IRQs
    saa7164_downloadfirmware() no first image
    saa7164_downloadfirmware() Waiting for firmware upload (NXP7164-2010-03-10.1.fw)
    saa7164 0000:03:00.0: firmware: requesting NXP7164-2010-03-10.1.fw
    ivtv: Unknown symbol v4l2_fh_exit
    ivtv: Unknown symbol v4l2_fh_del
    ivtv: Unknown symbol v4l2_fh_add
    ivtv: Unknown symbol v4l2_event_alloc
    ivtv: Unknown symbol v4l2_fh_init
    ivtv: Unknown symbol v4l2_event_pending
    ivtv: Unknown symbol v4l2_event_subscribe
    ivtv: Unknown symbol v4l2_event_queue
    ivtv: Unknown symbol v4l2_event_unsubscribe
    saa7164_downloadfirmware() firmware read 4019072 bytes.
    saa7164_downloadfirmware() firmware loaded.
    Firmware file header part 1:
    .FirmwareSize = 0×0
    .BSLSize = 0×0
    .Reserved = 0x3d538
    .Version = 0×3
    saa7164_downloadfirmware() SecBootLoader.FileSize = 4019072
    saa7164_downloadfirmware() FirmwareSize = 0x1fd6
    saa7164_downloadfirmware() BSLSize = 0×0
    saa7164_downloadfirmware() Reserved = 0×0
    saa7164_downloadfirmware() Version = 0x1661c00
    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.
    tveeprom 1-0000: Hauppauge model 88061, rev C4F2, serial# 7062481
    tveeprom 1-0000: MAC address is 00:0d:fe:6b:c3:d1
    tveeprom 1-0000: tuner model is NXP 18271C2_716x (idx 152, type 4)
    tveeprom 1-0000: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0×88)
    tveeprom 1-0000: audio processor is SAA7164 (idx 43)
    tveeprom 1-0000: decoder processor is SAA7164 (idx 40)
    tveeprom 1-0000: has radio, has IR receiver, has no IR transmitter
    saa7164[0]: Hauppauge eeprom: model=88061
    tda18271 2-0060: creating new instance
    TDA18271HD/C2 detected @ 2-0060
    DVB: registering new adapter (saa7164)
    DVB: registering adapter 0 frontend 0 (Samsung S5H1411 QAM/8VSB Frontend)…
    tda18271 3-0060: creating new instance
    TDA18271HD/C2 detected @ 3-0060
    tda18271: performing RF tracking filter calibration
    tda18271: RF tracking filter calibration complete
    DVB: registering new adapter (saa7164)
    DVB: registering adapter 1 frontend 0 (Samsung S5H1411 QAM/8VSB Frontend)…
    ————[ cut here ]————
    WARNING: at drivers/media/video/v4l2-dev.c:420 __video_register_device+0x4e6/0×500()
    Hardware name:
    Modules linked in: tda18271 s5h1411 nvidia(P) i2c_algo_bit saa7164(+) cx2341x dvb_core v4l2_common tveeprom i2c_i801 i2c_core
    Pid: 340, comm: modprobe Tainted: P 2.6.34-gentoo-r6 #1
    Call Trace:
    [] ? warn_slowpath_common+0×73/0xb0
    [] ? __video_register_device+0x4e6/0×500
    [] ? saa7164_encoder_register+0x1a3/0x2e0 [saa7164]
    [] ? saa7164_initdev+0xb18/0xcdd [saa7164]
    [] ? local_pci_probe+0×12/0×20
    [] ? pci_device_probe+0x8c/0xc0
    [] ? driver_sysfs_add+0x5a/0×80
    [] ? driver_probe_device+0×88/0×180
    [] ? __driver_attach+0×93/0xa0
    [] ? __driver_attach+0×0/0xa0
    [] ? bus_for_each_dev+0×58/0×80
    [] ? bus_add_driver+0xb0/0×250
    [] ? driver_register+0×70/0×130
    [] ? __pci_register_driver+0x4c/0xc0
    [] ? saa7164_init+0×0/0x4b [saa7164]
    [] ? saa7164_init+0×0/0x4b [saa7164]
    [] ? do_one_initcall+0×34/0x1a0
    [] ? sys_init_module+0xde/0×260
    [] ? system_call_fastpath+0×16/0x1b
    —[ end trace e98de74cd04aebc8 ]—
    saa7164[0]: can’t register mpeg device
    saa7164_initdev() Failed to register mpeg encoder
    ————[ cut here ]————
    WARNING: at drivers/media/video/v4l2-dev.c:420 __video_register_device+0x4e6/0×500()
    Hardware name:
    Modules linked in: tda18271 s5h1411 nvidia(P) i2c_algo_bit saa7164(+) cx2341x dvb_core v4l2_common tveeprom i2c_i801 i2c_core
    Pid: 340, comm: modprobe Tainted: P W 2.6.34-gentoo-r6 #1
    Call Trace:
    [] ? warn_slowpath_common+0×73/0xb0
    [] ? __video_register_device+0x4e6/0×500
    [] ? saa7164_encoder_register+0×121/0x2e0 [saa7164]
    [] ? saa7164_encoder_register+0x1a3/0x2e0 [saa7164]
    [] ? saa7164_initdev+0xb50/0xcdd [saa7164]
    [] ? local_pci_probe+0×12/0×20
    [] ? pci_device_probe+0x8c/0xc0
    [] ? driver_sysfs_add+0x5a/0×80
    [] ? driver_probe_device+0×88/0×180
    [] ? __driver_attach+0×93/0xa0
    [] ? __driver_attach+0×0/0xa0
    [] ? bus_for_each_dev+0×58/0×80
    [] ? bus_add_driver+0xb0/0×250
    [] ? driver_register+0×70/0×130
    [] ? __pci_register_driver+0x4c/0xc0
    [] ? saa7164_init+0×0/0x4b [saa7164]
    [] ? saa7164_init+0×0/0x4b [saa7164]
    [] ? do_one_initcall+0×34/0x1a0
    [] ? sys_init_module+0xde/0×260
    [] ? system_call_fastpath+0×16/0x1b
    —[ end trace e98de74cd04aebc9 ]—
    saa7164[0]: can’t register mpeg device
    saa7164_initdev() Failed to register mpeg encoder
    ————[ cut here ]————
    WARNING: at drivers/media/video/v4l2-dev.c:420 __video_register_device+0x4e6/0×500()
    Hardware name:
    Modules linked in: tda18271 s5h1411 nvidia(P) i2c_algo_bit saa7164(+) cx2341x dvb_core v4l2_common tveeprom i2c_i801 i2c_core
    Pid: 340, comm: modprobe Tainted: P W 2.6.34-gentoo-r6 #1
    Call Trace:
    [] ? warn_slowpath_common+0×73/0xb0
    [] ? __video_register_device+0x4e6/0×500
    [] ? saa7164_vbi_register+0xe3/0x1a0 [saa7164]
    [] ? saa7164_initdev+0xb88/0xcdd [saa7164]
    [] ? local_pci_probe+0×12/0×20
    [] ? pci_device_probe+0x8c/0xc0
    [] ? driver_sysfs_add+0x5a/0×80
    [] ? driver_probe_device+0×88/0×180
    [] ? __driver_attach+0×93/0xa0
    [] ? __driver_attach+0×0/0xa0
    [] ? bus_for_each_dev+0×58/0×80
    [] ? bus_add_driver+0xb0/0×250
    [] ? driver_register+0×70/0×130
    [] ? __pci_register_driver+0x4c/0xc0
    [] ? saa7164_init+0×0/0x4b [saa7164]
    [] ? saa7164_init+0×0/0x4b [saa7164]
    [] ? do_one_initcall+0×34/0x1a0
    [] ? sys_init_module+0xde/0×260
    [] ? system_call_fastpath+0×16/0x1b
    —[ end trace e98de74cd04aebca ]—
    saa7164[0]: can’t register vbi device
    saa7164_initdev() Failed to register vbi device
    ————[ cut here ]————
    WARNING: at drivers/media/video/v4l2-dev.c:420 __video_register_device+0x4e6/0×500()
    Hardware name:
    Modules linked in: tda18271 s5h1411 nvidia(P) i2c_algo_bit saa7164(+) cx2341x dvb_core v4l2_common tveeprom i2c_i801 i2c_core
    Pid: 340, comm: modprobe Tainted: P W 2.6.34-gentoo-r6 #1
    Call Trace:
    [] ? warn_slowpath_common+0×73/0xb0
    [] ? __video_register_device+0x4e6/0×500
    [] ? saa7164_vbi_register+0xe3/0x1a0 [saa7164]
    [] ? saa7164_initdev+0xbc0/0xcdd [saa7164]
    [] ? local_pci_probe+0×12/0×20
    [] ? pci_device_probe+0x8c/0xc0
    [] ? driver_sysfs_add+0x5a/0×80
    [] ? driver_probe_device+0×88/0×180
    [] ? __driver_attach+0×93/0xa0
    [] ? __driver_attach+0×0/0xa0
    [] ? bus_for_each_dev+0×58/0×80
    [] ? bus_add_driver+0xb0/0×250
    [] ? driver_register+0×70/0×130
    [] ? __pci_register_driver+0x4c/0xc0
    [] ? saa7164_init+0×0/0x4b [saa7164]
    [] ? saa7164_init+0×0/0x4b [saa7164]
    [] ? do_one_initcall+0×34/0x1a0
    [] ? sys_init_module+0xde/0×260
    [] ? system_call_fastpath+0×16/0x1b
    —[ end trace e98de74cd04aebcb ]—
    saa7164[0]: can’t register vbi device
    saa7164_initdev() Failed to register vbi device

    • Steven says

      Not sure Garth. That’s not something I’ve ever seen under ubuntu. Looks to me like a v4l sub modules is failing to load. Make clean on the entire tree then make install and reboot.

  31. Jeff says

    Steven,

    I wanted to add my congratulations and thanks to the list. Great work.

    We have been doing some 24/7 stream testing and will report back with results.

    Jeff

  32. Nestor says

    Steven, do not know if it would be very complicated, but may you include PAL support?

    nestor@tele:~$ v4lctl -c /dev/video0 setnorm PAL
    invalid value for norm: PAL
    valid choices for “norm”: “NTSC-M”, “NTSC-M-JP”, “NTSC-443″

    Thanks

    • Steven says

      Set to NTSC-M for testing, PAL should be automatically detected, no?

      PAL will come.

  33. Erol says

    Checked out latest code and still reports that image is corrupted:

    The image md5sum is:
    fd24b601fe2cf5779778da5f7521c917 /lib/firmware/NXP7164-2010-03-10.1.fw

    This is image I downloaded from the site.

    root@frontend:/home/erol# dmesg |grep saa7164
    [ 82.301470] saa7164 driver loaded
    [ 82.301531] saa7164 0000:05:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
    [ 82.301728] CORE saa7164[0]: subsystem: 0070:8900, board: Hauppauge WinTV-HVR2200 [card=5,autodetected]
    [ 82.301735] saa7164[0]/0: found at 0000:05:00.0, rev: 129, irq: 16, latency: 0, mmio: 0xf9c00000
    [ 82.301741] saa7164 0000:05:00.0: setting latency timer to 64
    [ 82.301745] IRQ 16/saa7164[0]: IRQF_DISABLED is not guaranteed on shared IRQs
    [ 82.317105] saa7164_downloadfirmware() no first image
    [ 82.317116] saa7164_downloadfirmware() Waiting for firmware upload (NXP7164-2010-03-10.1.fw)
    [ 82.317121] saa7164 0000:05:00.0: firmware: requesting NXP7164-2010-03-10.1.fw
    [ 82.590320] saa7164_downloadfirmware() firmware read 4019072 bytes.
    [ 82.590324] saa7164_downloadfirmware() firmware loaded.
    [ 82.590332] saa7164_downloadfirmware() SecBootLoader.FileSize = 4019072
    [ 82.590340] saa7164_downloadfirmware() FirmwareSize = 0x1fd6
    [ 82.590342] saa7164_downloadfirmware() BSLSize = 0×0
    [ 82.590344] saa7164_downloadfirmware() Reserved = 0×0
    [ 82.590345] saa7164_downloadfirmware() Version = 0x1661c00
    [ 88.000013] saa7164_downloadimage() image corrupt

    Steven, your help is really appreciated. PRETTY PLEASE :)

  34. Jeff says

    Steven,

    Would you expect each card (two cards in a dual xeon test machine) to generate 30 interrupts per second each, when neither card is in use (no mythtv, no other app talking to them)? They are just sitting idle in the machine at the moment.

    -Jeff

    • Steven says

      Possibly the firmware debug thread. From memory this can be disabled using a module param. Nothing else comes to mind.



Some HTML is OK

or, reply to this post via trackback.