Hi, after a recent distribution upgrade (openSuSE 11.3 -> 11.4 -> 12.1) at least the radio subset of my bt878 PCI card can no longer be used with existing radio tuner applications. 'radio' from v4l-tools reports "VIDIOCGAUDIO: Inappropriate ioctl for device bttv", as does qgradio. With Kernels up to 2.6.37.x (both distributor package and vanilla) both applications work as expected. Test environment: Asus P5Q SE2 (intel P45, LGA775 chipset), intel C2Q-9400, 8 GB DDR2 memory, nvidia PCIe graphics card. Old Hauppauge bt878 PCI TV and radio tuner card: (lspci -nn excerpt) 04:00.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11) 04:00.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11) openSuSE 12.1/x86_64 Linux distribution. openSuSE 11.3, 11.4/x86_64 with vanilla kernel versions 3.0.4, 3.0.9, 3.1.7 In all cases I got the same result, therefore I suspect changes to bttv or v4l in Linux 3.x to be the reason for the problem. Working setup: openSuSE 11.1 to 11.4/x86_64, both distribution and vanilla kernel versions up to 2.6.37.x. I didn't use any 2.6.3[89].x kernels. The hardware isn't broken, reverting to older kernel versions cures the problem. Kind regards, Arthur
Created attachment 72054 [details] dmesg output from loading the bttv driver
I am experiencing similar problems with a dvb-t card which is said to be the same as Arthur's Hauppauge card. (According to http://www.linuxtv.org/wiki/index.php/TwinhanDTV_Mini_Ter ) I bought the card unbranded on ebay, but on the board it gives the following information: board: VP3020 V1.0 chipset: Conexant Fusion 878A ; 25878-13 tuner: Philips TV1216/i H P ; SV20 0341 It also used to work before but stopped working somwhere in the 2.6.x kernel generation already. Since I changed to DVB-S, I didn't use this card for long time. Now, I wanted to add it for parallelly recording and watching TV. My setup is OpenELEC_PVR-Generic.i386-1.95.7 with kernel 3.2.28. System runs on an ASUS M3A78-EMH-HDMI with an AMD Athlon64 4200+ and 4GB RAM. There is also a TechniSat Skystar2 DVB-S card installed which is working properly. Removing this one makes no difference. dmesg shows the following: [ 9.338108] bttv: driver version 0.9.19 loaded [ 9.338112] bttv: using 8 buffers with 2080k (520 pages) each for capture [ 9.338294] bttv: Bt8xx card found (0) [ 9.338325] bttv 0000:04:07.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21 [ 9.338337] bttv: 0: Bt878 (rev 17) at 0000:04:07.0, irq: 21, latency: 64, mmio: 0xfafff000 [ 9.338352] bttv: 0: using: *** UNKNOWN/GENERIC *** [card=0,autodetected] [ 9.382934] bttv: 0: tuner type unset [ 9.383100] bttv: 0: registered device video0 [ 9.383326] bttv: 0: registered device vbi0 The card seems to be ignored due to an unset tuner type. Since the thing used to work OTB before, this seems to be a regression. It should be possible to fix this by simply adding the correct data into the bttv modules devices list, I guess... If I can contribute any further information on this, I'd be happy to help. And, of course, happy to use this card again... :D
Hello, I have the same problem with a Hauppauge WinTV PVR card (bt878 with radio). Since 2.6.39.x radio is broken => No Frequency range : v4l2-ctl -d /dev/radio0 --all -L kernel 2.6.32.x: ---------------- Driver Info (not using libv4l2): Driver name : bttv Card type : BT878 radio (Hauppauge WinTV PV Bus info : PCI:0000:02:0a.0 Driver version: 0.9.18 Capabilities : 0x00010000 Tuner Video input : 0 (Radio: ok) Audio input : 0 (Radio) Frequency: 0 (0.000000 MHz) Tuner: Name : Radio Capabilities : 62.5 Hz stereo Frequency range : 65.0 MHz - 108.0 MHz Signal strength/AFC : 13%/0 Current audio mode : stereo Available subchannels: mono mute (bool) : default=0 value=1 kernel 2.6.38.x: ---------------- Driver Info (not using libv4l2): Driver name : bttv Card type : BT878 radio (Hauppauge WinTV PV Bus info : PCI:0000:02:0a.0 Driver version: 0.9.18 Capabilities : 0x00010000 Tuner Video input : 0 (Radio: ok) Audio input : 0 (Radio) Frequency: 0 (0.000000 MHz) Tuner: Name : Radio Capabilities : 62.5 Hz stereo Frequency range : 65.0 MHz - 108.0 MHz Signal strength/AFC : 0%/0 Current audio mode : stereo Available subchannels: mono mute (bool) : default=0 value=1 kernel 3.0.x: ---------------- Driver Info (not using libv4l2): Driver name : bttv Card type : BT878 radio (Hauppauge WinTV PV Bus info : PCI:0000:02:0a.0 Driver version: 0.9.18 Capabilities : 0x00010000 Tuner Video input : 0 (Radio: ok) Audio input : 0 (Radio) Frequency: 0 (0.000000 MHz) Tuner: Name : Radio Capabilities : 62.5 kHz Frequency range : 0.0 MHz - 0.0 MHz Signal strength/AFC : 0%/0 Current audio mode : mono Available subchannels: mute (bool) : default=0 value=1 3.2: ----- Driver Info (not using libv4l2): Driver name : bttv Card type : BT878 radio (Hauppauge WinTV PV Bus info : PCI:0000:02:0a.0 Driver version: 3.2.27 Capabilities : 0x00010000 Tuner Video input : 0 (Radio: ok) Audio input : 0 (Radio) Frequency: 0 (0.000000 MHz) Tuner: Name : Radio Capabilities : 62.5 kHz Frequency range : 0.0 MHz - 0.0 MHz Signal strength/AFC : 0%/0 Current audio mode : mono Available subchannels: mute (bool) : default=0 value=1 I will test it with kernel 3.5.x from ubuntu quantal (12.10), because regarding the ubuntu thread kernel 3.5.x should fix the problem. Udo Steinberg bisected the commit: Link and message: https://lkml.org/lkml/2011/11/11/257 I've bisected the problem. The commit that breaks things is: commit cbde689823776d187ba1b307a171625dbc02dd4f Author: Mauro Carvalho Chehab <email address hidden> Date: Fri Feb 4 10:42:09 2011 -0300 [media] tuner-core: Better implement standby mode In the past, T_STANDBY were used on devices with a separate radio tuner to mark a tuner that were disabled. With the time, it got newer meanings. Also, due to a bug at the logic, the driver might incorrectly return T_STANDBY to userspace. So, instead of keeping the abuse, just use a boolean for storing such information. We can't remove T_STANDBY yet, as this is used on two other drivers. A latter patch will address its usage outside tuner-core. Thanks-to: Devin Heitmueller <email address hidden> Signed-off-by: Mauro Carvalho Chehab <email address hidden> Link summary: ----------------- ubuntu thread: https://bugs.launchpad.net/gnomeradio/+bug/776065 Bisected commit: Udo Steinberg https://lkml.org/lkml/2011/11/11/257 Broken since 2.6.39 https://lkml.org/lkml/2011/12/15/177 Maybe there is the possibility to revert the commit and backport a fix to the long-term stable kernel 3.2.x. Best regards, Bernhard
I can confirm that with kernel 3.5.7 (ubuntu kernel 3.5.0-18-generic #29~precise), my radio is working again. v4l2-ctl -d /dev/radio0 --all -L Driver Info (not using libv4l2): Driver name : bttv Card type : BT878 radio (Hauppauge WinTV PV Bus info : PCI:0000:02:0a.0 Driver version: 3.5.7 Capabilities : 0x00010000 Tuner Video input : 0 (Radio: ok) Audio input : 0 (Radio) Frequency: 0 (0.000000 MHz) Tuner: Name : Radio Capabilities : 62.5 Hz stereo Frequency range : 65.0 MHz - 108.0 MHz Signal strength/AFC : 13%/0 Current audio mode : stereo Available subchannels: mono mute (bool) : default=0 value=1 Is there the possibility to backport the issue to Long-Term-Stable kernels and so to solve the problem in kernel 3.2.x?