cx23885: Add basic analog radio support

Message ID 524F0F57.5020605@netscape.net (mailing list archive)
State RFC, archived
Headers

Commit Message

Alfredo Jesús Delaiti Oct. 4, 2013, 6:56 p.m. UTC
  Hi all


El 14/01/12 15:25, Miroslav Sluge? escribió:
> New version of patch, fixed video modes for DVR3200 tuners and working
> audio mux.

I tested this patch (https://linuxtv.org/patch/9498/) with the latest 
versions of git (September 28, 2013) with my TV card (Mygica X8507) and 
it works.
I found some issue, although it may be through a bad implementation of mine.

Details of them:

1) Some warning when compiling

...
   CC [M] 
/home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.o
/home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1910:8: 
: initialization from incompatible pointer type [enabled by default]
/home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1910:8: 
warning: (near initialization for 'radio_ioctl_ops.vidioc_s_tuner') 
[enabled by default]
/home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1911:8: 
warning: initialization from incompatible pointer type [enabled by default]
/home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1911:8: 
warning: (near initialization for 'radio_ioctl_ops.vidioc_s_audio') 
[enabled by default]
   CC [M] /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-vbi.o
...

--------------------------------------------------------
static const struct v4l2_ioctl_ops radio_ioctl_ops = {

        .vidioc_s_tuner       = radio_s_tuner, /* line 1910 */
        .vidioc_s_audio       = radio_s_audio, /* line 1911 */

--------------------------------------------------------

2)
No reports signal strength or stereo signal with KRadio. XC5000 neither 
reported (modprobe xc5000 debug=1). Maybe a feature XC5000.
To listen in stereo, sometimes, you have to turn on the Digital TV then 
Analog TV and then radio.

3)
To listen Analog TV I need changed to NTSC standard and then PAL-Nc (the 
norm in my country is PAL-Nc). If I leave the tune in NTSC no problem 
with sound.
The patch (https://linuxtv.org/patch/9505/) corrects the latter, if used 
tvtime with xawtv not always.
If I see-Digital TV (ISDB-T), then so as to listen the radio I have 
first put the TV-Analog, because I hear very low and a strong white noise.
The latter is likely to be corrected by resetting the tuner, I have to 
study it more.

I put below attached the patch applied to the plate: X8507.

Have you done any update of this patch?

Thanks
  

Comments

Alfredo Jesús Delaiti Oct. 22, 2013, 3:07 a.m. UTC | #1
Hi Miroslav

El 19/10/13 12:58, Miroslav Sluge? escribió:
> Hi, i am not using those devices anymore for analog, we do change our 
> devices to SDR and SW demodulation, but i am sending my latest patches 
> all for kernel 3.2.XX
>
> Feel free to resubmit any kind of my code by your name ;)
>
> Miroslav Sluge?
> +420 724 825 885
>

Thanks you Miroslav, but is your code.

Regards,

Alfredo



> Alfredo Jesús Delaiti napsal(a):
>> Hi all
>>
>>
>> El 14/01/12 15:25, Miroslav Sluge? escribió:
>>> New version of patch, fixed video modes for DVR3200 tuners and working
>>> audio mux.
>>
>> I tested this patch (https://linuxtv.org/patch/9498/) with the latest
>> versions of git (September 28, 2013) with my TV card (Mygica X8507) and
>> it works.
>> I found some issue, although it may be through a bad implementation of
>> mine.
>>
>> Details of them:
>>
>> 1) Some warning when compiling
>>
>> ...
>> CC [M] 
>> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.o
>> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1910:8: 
>>
>> : initialization from incompatible pointer type [enabled by default]
>> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1910:8: 
>>
>> warning: (near initialization for 'radio_ioctl_ops.vidioc_s_tuner')
>> [enabled by default]
>> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1911:8: 
>>
>> warning: initialization from incompatible pointer type [enabled by 
>> default]
>> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1911:8: 
>>
>> warning: (near initialization for 'radio_ioctl_ops.vidioc_s_audio')
>> [enabled by default]
>> CC [M] /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-vbi.o
>> ...
>>
>> --------------------------------------------------------
>> static const struct v4l2_ioctl_ops radio_ioctl_ops = {
>>
>> .vidioc_s_tuner = radio_s_tuner, /* line 1910 */
>> .vidioc_s_audio = radio_s_audio, /* line 1911 */
>>
>> --------------------------------------------------------
>>
>> 2)
>> No reports signal strength or stereo signal with KRadio. XC5000 neither
>> reported (modprobe xc5000 debug=1). Maybe a feature XC5000.
>> To listen in stereo, sometimes, you have to turn on the Digital TV then
>> Analog TV and then radio.
>>
>> 3)
>> To listen Analog TV I need changed to NTSC standard and then PAL-Nc (the
>> norm in my country is PAL-Nc). If I leave the tune in NTSC no problem
>> with sound.
>> The patch (https://linuxtv.org/patch/9505/) corrects the latter, if used
>> tvtime with xawtv not always.
>> If I see-Digital TV (ISDB-T), then so as to listen the radio I have
>> first put the TV-Analog, because I hear very low and a strong white 
>> noise.
>> The latter is likely to be corrected by resetting the tuner, I have to
>> study it more.
>>
>> I put below attached the patch applied to the plate: X8507.
>>
>> Have you done any update of this patch?
>>
>> Thanks

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  
Mauro Carvalho Chehab Oct. 31, 2013, 10:12 a.m. UTC | #2
Em Fri, 04 Oct 2013 15:56:23 -0300
Alfredo Jesús Delaiti  <alfredodelaiti@netscape.net> escreveu:

> Hi all
> 
> 
> El 14/01/12 15:25, Miroslav Sluge? escribió:
> > New version of patch, fixed video modes for DVR3200 tuners and working
> > audio mux.
> 
> I tested this patch (https://linuxtv.org/patch/9498/) with the latest 
> versions of git (September 28, 2013) with my TV card (Mygica X8507) and 
> it works.
> I found some issue, although it may be through a bad implementation of mine.
> 
> Details of them:
> 
> 1) Some warning when compiling
> 
> ...
>    CC [M] 
> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.o
> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1910:8: 
> : initialization from incompatible pointer type [enabled by default]
> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1910:8: 
> warning: (near initialization for 'radio_ioctl_ops.vidioc_s_tuner') 
> [enabled by default]
> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1911:8: 
> warning: initialization from incompatible pointer type [enabled by default]
> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1911:8: 
> warning: (near initialization for 'radio_ioctl_ops.vidioc_s_audio') 
> [enabled by default]
>    CC [M] /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-vbi.o
> ...
> 
> --------------------------------------------------------
> static const struct v4l2_ioctl_ops radio_ioctl_ops = {
> 
>         .vidioc_s_tuner       = radio_s_tuner, /* line 1910 */
>         .vidioc_s_audio       = radio_s_audio, /* line 1911 */
> 
> --------------------------------------------------------
> 
> 2)
> No reports signal strength or stereo signal with KRadio. XC5000 neither 
> reported (modprobe xc5000 debug=1). Maybe a feature XC5000.
> To listen in stereo, sometimes, you have to turn on the Digital TV then 
> Analog TV and then radio.
> 
> 3)
> To listen Analog TV I need changed to NTSC standard and then PAL-Nc (the 
> norm in my country is PAL-Nc). If I leave the tune in NTSC no problem 
> with sound.
> The patch (https://linuxtv.org/patch/9505/) corrects the latter, if used 
> tvtime with xawtv not always.
> If I see-Digital TV (ISDB-T), then so as to listen the radio I have 
> first put the TV-Analog, because I hear very low and a strong white noise.
> The latter is likely to be corrected by resetting the tuner, I have to 
> study it more.
> 
> I put below attached the patch applied to the plate: X8507.
> 
> Have you done any update of this patch?

Hi Alfredo,

My understanding is that the patch you've enclosed is incomplete and
depends on Miroslav's patch.

As he have you his ack to rework on it, could you please prepare a
patch series addressing the above comments for us to review?

Than
  
Alfredo Jesús Delaiti Nov. 4, 2013, 5:18 p.m. UTC | #3
Hi all

El 31/10/13 07:12, Mauro Carvalho Chehab escribió:
> Em Fri, 04 Oct 2013 15:56:23 -0300
> Alfredo Jesús Delaiti  <alfredodelaiti@netscape.net> escreveu:
>
>> Hi all
>>
>>
>> El 14/01/12 15:25, Miroslav Sluge? escribió:
>>> New version of patch, fixed video modes for DVR3200 tuners and working
>>> audio mux.
>> I tested this patch (https://linuxtv.org/patch/9498/) with the latest
>> versions of git (September 28, 2013) with my TV card (Mygica X8507) and
>> it works.
>> I found some issue, although it may be through a bad implementation of mine.
>>
>> Details of them:
>>
>> 1) Some warning when compiling
>>
>> ...
>>     CC [M]
>> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.o
>> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1910:8:
>> : initialization from incompatible pointer type [enabled by default]
>> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1910:8:
>> warning: (near initialization for 'radio_ioctl_ops.vidioc_s_tuner')
>> [enabled by default]
>> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1911:8:
>> warning: initialization from incompatible pointer type [enabled by default]
>> /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-video.c:1911:8:
>> warning: (near initialization for 'radio_ioctl_ops.vidioc_s_audio')
>> [enabled by default]
>>     CC [M] /home/alfredo/ISDB/Nuevo_Driver/git/media_build/v4l/cx23885-vbi.o
>> ...
>>
>> --------------------------------------------------------
>> static const struct v4l2_ioctl_ops radio_ioctl_ops = {
>>
>>          .vidioc_s_tuner       = radio_s_tuner, /* line 1910 */
>>          .vidioc_s_audio       = radio_s_audio, /* line 1911 */
>>
>> --------------------------------------------------------
>>
>> 2)
>> No reports signal strength or stereo signal with KRadio. XC5000 neither
>> reported (modprobe xc5000 debug=1). Maybe a feature XC5000.
>> To listen in stereo, sometimes, you have to turn on the Digital TV then
>> Analog TV and then radio.
>>
>> 3)
>> To listen Analog TV I need changed to NTSC standard and then PAL-Nc (the
>> norm in my country is PAL-Nc). If I leave the tune in NTSC no problem
>> with sound.
>> The patch (https://linuxtv.org/patch/9505/) corrects the latter, if used
>> tvtime with xawtv not always.
>> If I see-Digital TV (ISDB-T), then so as to listen the radio I have
>> first put the TV-Analog, because I hear very low and a strong white noise.
>> The latter is likely to be corrected by resetting the tuner, I have to
>> study it more.
>>
>> I put below attached the patch applied to the plate: X8507.
>>
>> Have you done any update of this patch?
> Hi Alfredo,
>
> My understanding is that the patch you've enclosed is incomplete and
> depends on Miroslav's patch.

If so. My intention was to support the work of Miroslav, indicating that 
it could be used in another plate, with the problems I encountered with 
the implementation I did.

Unfortunately, Mirslav no longer working on it. See the last message 
sent by him.

> As he have you his ack to rework on it, could you please prepare a
> patch series addressing the above comments for us to review?
>
> Than

I can put back the patch from Miroslav, general support radio (but no 
for any card particular) and adapted to the latest versions of the 
drivers that are in git, and in a second patch, again, put the 
particular patch Mygica X8507.
I did not put in the subject "Patch" because as I said, has some bugs. 
Is it right to put in the subject "Patch" when is something incomplete?

Regards,

Alfredo
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

 .../media/pci/cx23885/{ => }/media/pci/cx23885/cx23885-cards.c   |    6 ++++++
 drivers/media/pci/cx23885/{ => }/media/pci/cx23885/cx23885-dvb.c |    1 +
 2 files changed, 7 insertions(+)

diff --git a/drivers/media/pci/cx23885/cx23885-cards.c b/drivers/media/pci/cx23885/cx23885-cards.c
index 6a71a96..324809a 100644
--- a/drivers/media/pci/cx23885/cx23885-cards.c
+++ b/drivers/media/pci/cx23885/cx23885-cards.c
@@ -526,16 +526,18 @@  struct cx23885_board cx23885_boards[] = {
 			.amux   = CX25840_AUDIO7,
 			.gpio0  = 0,
 		} },
 	},
 	[CX23885_BOARD_MYGICA_X8507] = {
 		.name		= "Mygica X8502/X8507 ISDB-T",
 		.tuner_type = TUNER_XC5000,
 		.tuner_addr = 0x61,
+		.radio_type	= TUNER_XC5000,
+		.radio_addr	= 0x61,
 		.tuner_bus	= 1,
 		.porta		= CX23885_ANALOG_VIDEO,
 		.portb		= CX23885_MPEG_DVB,
 		.input		= {
 			{
 				.type   = CX23885_VMUX_TELEVISION,
 				.vmux   = CX25840_COMPOSITE2,
 				.amux   = CX25840_AUDIO8,
@@ -555,16 +557,20 @@  struct cx23885_board cx23885_boards[] = {
 				.type   = CX23885_VMUX_COMPONENT,
 				.vmux   = CX25840_COMPONENT_ON |
 					CX25840_VIN1_CH1 |
 					CX25840_VIN6_CH2 |
 					CX25840_VIN7_CH3,
 				.amux   = CX25840_AUDIO7,
 			},
 		},
+		.radio = {
+				.type= CX23885_RADIO,
+				.amux= CX25840_AUDIO8,
+			},
 	},
 	[CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL] = {
 		.name		= "TerraTec Cinergy T PCIe Dual",
 		.portb		= CX23885_MPEG_DVB,
 		.portc		= CX23885_MPEG_DVB,
 	},
 	[CX23885_BOARD_TEVII_S471] = {
 		.name		= "TeVii S471",
diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c
index 971e4ff..4e946b2 100644
--- a/drivers/media/pci/cx23885/cx23885-dvb.c
+++ b/drivers/media/pci/cx23885/cx23885-dvb.c
@@ -495,16 +495,17 @@  static struct xc5000_config mygica_x8506_xc5000_config = {
 
 static struct mb86a20s_config mygica_x8507_mb86a20s_config = {
 	.demod_address = 0x10,
 };
 
 static struct xc5000_config mygica_x8507_xc5000_config = {
 	.i2c_address = 0x61,
 	.if_khz = 4000,
+	.radio_input = XC5000_RADIO_FM1,
 };
 
 static struct stv090x_config prof_8000_stv090x_config = {
 	.device                 = STV0903,
 	.demod_mode             = STV090x_SINGLE,
 	.clk_mode               = STV090x_CLK_EXT,
 	.xtal                   = 27000000,
 	.address                = 0x6A,