Regression-broken V4L2 radio API for BTTV cards (PV951)
Hello, All
Start from kernel 2.6.39 my TV card's PV951 radio is not work. On 2.6.38 it still fine work and form 2.6.39 to present it is not. I have seen to source's different for BTTV code from 2.6.38 to 2.6.39 and have not seen any functional changes then the problem is generic for radio API.
For test I call command "v4l2-ctl -d /dev/radio --all -L" on 2.6.32 and 3.1.4 kernel's versions:
***************** 2.6.32 (OK) ************************* [root@roman ~]# v4l2-ctl -d /dev/radio --all -L Driver Info (not using libv4l2):
Driver name : bttv
Card type : BT878 radio (ProVideo PV951)
Bus info : PCI:0000:01:09.0
Driver version: 0.9.18
Capabilities : 0x00010000
TunerVideo input : 0 (Radio: ok)
Audio input : 0 (Radio)
Frequency: 1040500 (65.031250 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=0
***************** 3.1.4 (Wrong) ************************* [root@roman ~]# v4l2-ctl -d /dev/radio --all -L Driver Info (not using libv4l2):
Driver name : bttv
Card type : BT878 radio (ProVideo PV951)
Bus info : PCI:0000:01:09.0
Driver version: 3.1.4
Capabilities : 0x00010000
TunerVideo 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=0
Regards, Roman
Quoted 5 lines · Roman Savochenko
Start from kernel 2.6.39 my TV card's PV951 radio is not work. On 2.6.38 it still fine work and form 2.6.39 to present it is not. I have seen to source's different for BTTV code from 2.6.38 to 2.6.39 and have not seen any functional changes then the problem is generic for radio API.
The problem appear by partial check for option "bttv radio=1". For that option /dev/radio0 is created but checking for radio into function check_mode() see only to device's flag ".has_radio", which clear for "ProVideo PV951 (42)" card.
Replacing card to "Pace TV & Radio Card (101)" resolve the problem for me.
Regards, Roman
Quoted 5 lines · Roman Savochenko
Start from kernel 2.6.39 my TV card's PV951 radio is not work. On 2.6.38 it still fine work and form 2.6.39 to present it is not. I have seen to source's different for BTTV code from 2.6.38 to 2.6.39 and have not seen any functional changes then the problem is generic for radio API.
The problem appear by partial check for option "bttv radio=1". For that option /dev/radio0 is created but checking for radio into function check_mode() see only to device's flag ".has_radio", which clear for "ProVideo PV951 (42)" card.
Replacing card to "Pace TV & Radio Card (101)" resolve the problem for me.
I think for fix that behavior need set flag ".has_radio" or RADIO mask for flag "bttv radio=1".
Regards, Roman