Skip to contentSkip to conversation

cx88 driver: Help needed to add radio support on Leadtek WINFAST DTV 2000 H (version J)

PATCH Andre Auzi 3 participants 11 messages May 8, 2008 – May 9, 2008 Media (V4L/DVB)

lore
Share & tools
lore

Andre Auzi

author
#0 lore raw

Hello list,

I've started the task to add support of the board mentionned above.

So far I've got analog TV, Composite and Svideo inputs working OK with IR as well.

Unfortunately, my area does not have DVB-T yet, but from the scans I've made, I'm confident DVB support is on good tracks.

Nevertheless, I cannot achieve to have the radio input working.

The gpio values were captured with regspy on a working windows installation.

Here are my additions in cx88-cards.c:

linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36 2008 +0200 renamed from linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54 2008 -0300 +49 -0
diff -r 0a072dd11cd8 linux/drivers/media/video/cx88/cx88-cards.c
@@ -1300,6 +1300,52 @@
        }},
        .mpeg           = CX88_MPEG_DVB,
    },
+    [CX88_BOARD_WINFAST_DTV2000H_VERSION_J] = {
+        /* Radio still in testing */
+        .name           = "WinFast DTV2000 H (version J)",
+        .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
+        .radio_type     = UNSET,
+        .tuner_addr     = ADDR_UNSET,
+        .radio_addr     = ADDR_UNSET,
+        .tda9887_conf   = TDA9887_PRESENT,
+        .input          = {{
+            .type   = CX88_VMUX_TELEVISION,
+            .vmux   = 0,
+            .gpio0  = 0x00013700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_CABLE,
+            .vmux   = 0,
+            .gpio0  = 0x0001b700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x0001b700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_COMPOSITE1,
+            .vmux   = 1,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_SVIDEO,
+            .vmux   = 2,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        } },
+        .radio = {
+            .type   = CX88_RADIO,
+            .gpio0  = 0x00013702,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013702,
+            .gpio3  = 0x02000000,
+        },
+    },
    [CX88_BOARD_GENIATECH_DVBS] = {
        .name          = "Geniatech DVB-S",
        .tuner_type    = TUNER_ABSENT,
@@ -1957,6 +2003,10 @@
        .subdevice = 0x665e,
        .card      = CX88_BOARD_WINFAST_DTV2000H,
    },{
+        .subvendor = 0x107d,
+        .subdevice = 0x6f2b,
+        .card      = CX88_BOARD_WINFAST_DTV2000H_VERSION_J,
+    },{
        .subvendor = 0x18ac,
        .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
        .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,

Would there be someone in the list with cx88 driver knowledge who already achieved this for another board and could hint me on things to look for?

I kindof reached the limits of my imagination and would really appreciate a help.

So far my modprobe.conf reads:

options tda9887 debug=1
options cx22702 debug=1
options cx88xx i2c_debug=1 i2c_scan=1 audio_debug=1 options cx8800 video_debug=1

and I would join the dmesg output if I did not care to flood the list.

Just let me know if it could help.

Thanks in advance
Andre

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

#1 lore raw
Quoted 7 lines · Andre Auzi

Hello list,

I've started the task to add support of the board mentionned above.

So far I've got analog TV, Composite and Svideo inputs working OK with IR as well.

Quoted 6 lines

Unfortunately, my area does not have DVB-T yet, but from the scans I've made, I'm confident DVB support is on good tracks.

Nevertheless, I cannot achieve to have the radio input working.

The gpio values were captured with regspy on a working windows installation.

With the ivtv driver, I helped debug the LG TAPE-H series tuner on the PVR-150MCE not demodulating FM radio. (Hans actually got the fix put in.) The problem turned out to be the incorrect "bandswitch byte" being set in tuner-simple.c. AFAICT, the gpio values for the CX23416 aren't used to set the FM radio on the PVR-150MCE.

There is a "bandswitch byte" in the synthesizer/1st mixer chip (probably a tua603x chip) in the tuner that controls some gpio pins. These gpio pins setup the tuner's preselector by switching in the proper bandpass filter for the Low VHF, FM, High-VHF, or UHF bands

For the FM1216ME_MK3 tuner (not the FMD1216ME_MK3) this bandswitch byte needs to be set to 0x98 for FM stereo or 0x9a for FM mono.

I notice in tuner-simple.c:simple_radio_bandswitch(), that for both the FM1216ME_MK3 and the FMD1216ME_MK3, the bandswitch byte for FM is coded as 0x19. This is a bit-reversal of 0x98. This seems wrong according to the FM1216ME_MK3 tuner datasheet here:

http://dl.ivtvdriver.org/datasheets/tuners/FM1216ME_MK3.pdf

I can't find the FMD1216ME_MK3 datasheet with some quick google searches. I cannot conclusively say the coded bandswitch byte of 0x19 is wrong for the FMD1261ME_MK3, but I think it's worth some investigation/experimentation.

You might also want to check/fix the tuner-simple.c:tuner_stereo() function while you're at it.

Good luck,
Andy

Quoted 87 lines

Here are my additions in cx88-cards.c:

diff -r 0a072dd11cd8 linux/drivers/media/video/cx88/cx88-cards.c
--- a/linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54
2008 -0300
+++ b/linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36
2008 +0200

linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36 2008 +0200 renamed from linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54 2008 -0300 +49 -0
@@ -1300,6 +1300,52 @@
         }},
         .mpeg           = CX88_MPEG_DVB,
     },
+    [CX88_BOARD_WINFAST_DTV2000H_VERSION_J] = {
+        /* Radio still in testing */
+        .name           = "WinFast DTV2000 H (version J)",
+        .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
+        .radio_type     = UNSET,
+        .tuner_addr     = ADDR_UNSET,
+        .radio_addr     = ADDR_UNSET,
+        .tda9887_conf   = TDA9887_PRESENT,
+        .input          = {{
+            .type   = CX88_VMUX_TELEVISION,
+            .vmux   = 0,
+            .gpio0  = 0x00013700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_CABLE,
+            .vmux   = 0,
+            .gpio0  = 0x0001b700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x0001b700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_COMPOSITE1,
+            .vmux   = 1,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_SVIDEO,
+            .vmux   = 2,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        } },
+        .radio = {
+            .type   = CX88_RADIO,
+            .gpio0  = 0x00013702,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013702,
+            .gpio3  = 0x02000000,
+        },
+    },
     [CX88_BOARD_GENIATECH_DVBS] = {
         .name          = "Geniatech DVB-S",
         .tuner_type    = TUNER_ABSENT,
@@ -1957,6 +2003,10 @@
         .subdevice = 0x665e,
         .card      = CX88_BOARD_WINFAST_DTV2000H,
     },{
+        .subvendor = 0x107d,
+        .subdevice = 0x6f2b,
+        .card      = CX88_BOARD_WINFAST_DTV2000H_VERSION_J,
+    },{
         .subvendor = 0x18ac,
         .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
         .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,

Would there be someone in the list with cx88 driver knowledge who already achieved this for another board and could hint me on things to look for?

I kindof reached the limits of my imagination and would really appreciate a help.

So far my modprobe.conf reads:

options tda9887 debug=1
options cx22702 debug=1
options cx88xx i2c_debug=1 i2c_scan=1 audio_debug=1 options cx8800 video_debug=1

Quoted 6 lines

and I would join the dmesg output if I did not care to flood the list.

Just let me know if it could help.

Thanks in advance
Andre

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

#2 lore raw
Quoted 21 lines · Andy Walls
Quoted 7 lines · Andre Auzi

Hello list,

I've started the task to add support of the board mentionned above.

So far I've got analog TV, Composite and Svideo inputs working OK with IR as well.

Quoted 6 lines

Unfortunately, my area does not have DVB-T yet, but from the scans I've made, I'm confident DVB support is on good tracks.

Nevertheless, I cannot achieve to have the radio input working.

The gpio values were captured with regspy on a working windows installation.

With the ivtv driver, I helped debug the LG TAPE-H series tuner on the PVR-150MCE not demodulating FM radio. (Hans actually got the fix put in.) The problem turned out to be the incorrect "bandswitch byte" being set in tuner-simple.c. AFAICT, the gpio values for the CX23416 aren't used to set the FM radio on the PVR-150MCE.

Quoted 7 lines

There is a "bandswitch byte" in the synthesizer/1st mixer chip (probably a tua603x chip) in the tuner that controls some gpio pins. These gpio pins setup the tuner's preselector by switching in the proper bandpass filter for the Low VHF, FM, High-VHF, or UHF bands

For the FM1216ME_MK3 tuner (not the FMD1216ME_MK3) this bandswitch byte needs to be set to 0x98 for FM stereo or 0x9a for FM mono.

Correction, I read the datasheet wrong. It should be 0x19 or 0x59. I reversed the bits. (The data sheet had the LSB in the left column of the table and the MSB in the right column of the table for some reason.)

Quoted 7 lines

I notice in tuner-simple.c:simple_radio_bandswitch(), that for both the FM1216ME_MK3 and the FMD1216ME_MK3, the bandswitch byte for FM is coded as 0x19. This is a bit-reversal of 0x98. This seems wrong according to the FM1216ME_MK3 tuner datasheet here:

http://dl.ivtvdriver.org/datasheets/tuners/FM1216ME_MK3.pdf

Again correction: I was the one who was wrong. The code for the FM1216ME_MK3 bandswitch to radio matches the datasheet.

Quoted 4 lines

I can't find the FMD1216ME_MK3 datasheet with some quick google searches. I cannot conclusively say the coded bandswitch byte of 0x19 is wrong for the FMD1216ME_MK3, but I think it's worth some investigation/experimentation.

This I still think is worth verification for the FMD1216ME_MK3. But given that the Phillips designs and the LG rebranded Phillips designs all seem to follow this pattern, I suspect it is correct.

Quoted 3 lines

You might also want to check/fix the tuner-simple.c:tuner_stereo() function while you're at it.

The FMD1216ME_MK3 is missing from this function. Once you can here stereo and mono stations, it is worth checking if this function is correct for the FMD1216ME_MK3

-Andy

Quoted 95 lines

Good luck,
Andy

Quoted 91 lines

Here are my additions in cx88-cards.c:

diff -r 0a072dd11cd8 linux/drivers/media/video/cx88/cx88-cards.c
--- a/linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54
2008 -0300
+++ b/linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36
2008 +0200

linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36 2008 +0200 renamed from linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54 2008 -0300 +49 -0
@@ -1300,6 +1300,52 @@
         }},
         .mpeg           = CX88_MPEG_DVB,
     },
+    [CX88_BOARD_WINFAST_DTV2000H_VERSION_J] = {
+        /* Radio still in testing */
+        .name           = "WinFast DTV2000 H (version J)",
+        .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
+        .radio_type     = UNSET,
+        .tuner_addr     = ADDR_UNSET,
+        .radio_addr     = ADDR_UNSET,
+        .tda9887_conf   = TDA9887_PRESENT,
+        .input          = {{
+            .type   = CX88_VMUX_TELEVISION,
+            .vmux   = 0,
+            .gpio0  = 0x00013700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_CABLE,
+            .vmux   = 0,
+            .gpio0  = 0x0001b700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x0001b700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_COMPOSITE1,
+            .vmux   = 1,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_SVIDEO,
+            .vmux   = 2,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        } },
+        .radio = {
+            .type   = CX88_RADIO,
+            .gpio0  = 0x00013702,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013702,
+            .gpio3  = 0x02000000,
+        },
+    },
     [CX88_BOARD_GENIATECH_DVBS] = {
         .name          = "Geniatech DVB-S",
         .tuner_type    = TUNER_ABSENT,
@@ -1957,6 +2003,10 @@
         .subdevice = 0x665e,
         .card      = CX88_BOARD_WINFAST_DTV2000H,
     },{
+        .subvendor = 0x107d,
+        .subdevice = 0x6f2b,
+        .card      = CX88_BOARD_WINFAST_DTV2000H_VERSION_J,
+    },{
         .subvendor = 0x18ac,
         .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
         .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,

Would there be someone in the list with cx88 driver knowledge who already achieved this for another board and could hint me on things to look for?

I kindof reached the limits of my imagination and would really appreciate a help.

So far my modprobe.conf reads:

options tda9887 debug=1
options cx22702 debug=1
options cx88xx i2c_debug=1 i2c_scan=1 audio_debug=1 options cx8800 video_debug=1

and I would join the dmesg output if I did not care to flood the list.

Just let me know if it could help.

Quoted 9 lines
Quoted 2 lines

Thanks in advance
Andre

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

#4 lore raw
In reply to Andy Walls

Am Donnerstag, den 08.05.2008, 20:13 -0400 schrieb Andy Walls:

Quoted 34 lines · Andre Auzi
Quoted 7 lines

Hello list,

I've started the task to add support of the board mentionned above.

So far I've got analog TV, Composite and Svideo inputs working OK with IR as well.

Quoted 6 lines

Unfortunately, my area does not have DVB-T yet, but from the scans I've made, I'm confident DVB support is on good tracks.

Nevertheless, I cannot achieve to have the radio input working.

The gpio values were captured with regspy on a working windows installation.

With the ivtv driver, I helped debug the LG TAPE-H series tuner on the PVR-150MCE not demodulating FM radio. (Hans actually got the fix put in.) The problem turned out to be the incorrect "bandswitch byte" being set in tuner-simple.c. AFAICT, the gpio values for the CX23416 aren't used to set the FM radio on the PVR-150MCE.

There is a "bandswitch byte" in the synthesizer/1st mixer chip (probably a tua603x chip) in the tuner that controls some gpio pins. These gpio pins setup the tuner's preselector by switching in the proper bandpass filter for the Low VHF, FM, High-VHF, or UHF bands

For the FM1216ME_MK3 tuner (not the FMD1216ME_MK3) this bandswitch byte needs to be set to 0x98 for FM stereo or 0x9a for FM mono.

I notice in tuner-simple.c:simple_radio_bandswitch(), that for both the FM1216ME_MK3 and the FMD1216ME_MK3, the bandswitch byte for FM is coded as 0x19. This is a bit-reversal of 0x98. This seems wrong according to the FM1216ME_MK3 tuner datasheet here:

Quoted 6 lines

http://dl.ivtvdriver.org/datasheets/tuners/FM1216ME_MK3.pdf

I can't find the FMD1216ME_MK3 datasheet with some quick google searches. I cannot conclusively say the coded bandswitch byte of 0x19 is wrong for the FMD1261ME_MK3, but I think it's worth some investigation/experimentation.

Hi,

it is, we were only hackers!

And there is no substitution for it.

The radio stereo hack was specific for the FM1216ME/I H-3 (MK3) and the FMD1216ME/I H-3 (MK-3) never could utilize that bit reading out the stereo status for FM ...

Cheers,
Hermann

Quoted 95 lines

You might also want to check/fix the tuner-simple.c:tuner_stereo() function while you're at it.

Good luck,
Andy

Quoted 87 lines

Here are my additions in cx88-cards.c:

diff -r 0a072dd11cd8 linux/drivers/media/video/cx88/cx88-cards.c
--- a/linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54
2008 -0300
+++ b/linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36
2008 +0200

linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36 2008 +0200 renamed from linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54 2008 -0300 +49 -0
@@ -1300,6 +1300,52 @@
         }},
         .mpeg           = CX88_MPEG_DVB,
     },
+    [CX88_BOARD_WINFAST_DTV2000H_VERSION_J] = {
+        /* Radio still in testing */
+        .name           = "WinFast DTV2000 H (version J)",
+        .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
+        .radio_type     = UNSET,
+        .tuner_addr     = ADDR_UNSET,
+        .radio_addr     = ADDR_UNSET,
+        .tda9887_conf   = TDA9887_PRESENT,
+        .input          = {{
+            .type   = CX88_VMUX_TELEVISION,
+            .vmux   = 0,
+            .gpio0  = 0x00013700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_CABLE,
+            .vmux   = 0,
+            .gpio0  = 0x0001b700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x0001b700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_COMPOSITE1,
+            .vmux   = 1,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_SVIDEO,
+            .vmux   = 2,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        } },
+        .radio = {
+            .type   = CX88_RADIO,
+            .gpio0  = 0x00013702,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013702,
+            .gpio3  = 0x02000000,
+        },
+    },
     [CX88_BOARD_GENIATECH_DVBS] = {
         .name          = "Geniatech DVB-S",
         .tuner_type    = TUNER_ABSENT,
@@ -1957,6 +2003,10 @@
         .subdevice = 0x665e,
         .card      = CX88_BOARD_WINFAST_DTV2000H,
     },{
+        .subvendor = 0x107d,
+        .subdevice = 0x6f2b,
+        .card      = CX88_BOARD_WINFAST_DTV2000H_VERSION_J,
+    },{
         .subvendor = 0x18ac,
         .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
         .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,

Would there be someone in the list with cx88 driver knowledge who already achieved this for another board and could hint me on things to look for?

I kindof reached the limits of my imagination and would really appreciate a help.

So far my modprobe.conf reads:

options tda9887 debug=1
options cx22702 debug=1
options cx88xx i2c_debug=1 i2c_scan=1 audio_debug=1 options cx8800 video_debug=1

Quoted 8 lines
Quoted 6 lines

and I would join the dmesg output if I did not care to flood the list.

Just let me know if it could help.

Thanks in advance
Andre

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

#3 lore raw
In reply to Andy Walls

Am Donnerstag, den 08.05.2008, 20:32 -0400 schrieb Andy Walls:

Quoted 56 lines · Andy Walls
Quoted 21 lines · Andre Auzi
Quoted 7 lines

Hello list,

I've started the task to add support of the board mentionned above.

So far I've got analog TV, Composite and Svideo inputs working OK with IR as well.

Quoted 6 lines

Unfortunately, my area does not have DVB-T yet, but from the scans I've made, I'm confident DVB support is on good tracks.

Nevertheless, I cannot achieve to have the radio input working.

The gpio values were captured with regspy on a working windows installation.

With the ivtv driver, I helped debug the LG TAPE-H series tuner on the PVR-150MCE not demodulating FM radio. (Hans actually got the fix put in.) The problem turned out to be the incorrect "bandswitch byte" being set in tuner-simple.c. AFAICT, the gpio values for the CX23416 aren't used to set the FM radio on the PVR-150MCE.

Quoted 7 lines

There is a "bandswitch byte" in the synthesizer/1st mixer chip (probably a tua603x chip) in the tuner that controls some gpio pins. These gpio pins setup the tuner's preselector by switching in the proper bandpass filter for the Low VHF, FM, High-VHF, or UHF bands

For the FM1216ME_MK3 tuner (not the FMD1216ME_MK3) this bandswitch byte needs to be set to 0x98 for FM stereo or 0x9a for FM mono.

Correction, I read the datasheet wrong. It should be 0x19 or 0x59. I reversed the bits. (The data sheet had the LSB in the left column of the table and the MSB in the right column of the table for some reason.)

Quoted 7 lines

I notice in tuner-simple.c:simple_radio_bandswitch(), that for both the FM1216ME_MK3 and the FMD1216ME_MK3, the bandswitch byte for FM is coded as 0x19. This is a bit-reversal of 0x98. This seems wrong according to the FM1216ME_MK3 tuner datasheet here:

http://dl.ivtvdriver.org/datasheets/tuners/FM1216ME_MK3.pdf

Again correction: I was the one who was wrong. The code for the FM1216ME_MK3 bandswitch to radio matches the datasheet.

Quoted 4 lines

I can't find the FMD1216ME_MK3 datasheet with some quick google searches. I cannot conclusively say the coded bandswitch byte of 0x19 is wrong for the FMD1216ME_MK3, but I think it's worth some investigation/experimentation.

This I still think is worth verification for the FMD1216ME_MK3. But given that the Phillips designs and the LG rebranded Phillips designs all seem to follow this pattern, I suspect it is correct.

Quoted 1 line
Quoted 6 lines
Quoted 2 lines

You might also want to check/fix the tuner-simple.c:tuner_stereo() function while you're at it.

The FMD1216ME_MK3 is missing from this function. Once you can here stereo and mono stations, it is worth checking if this function is correct for the FMD1216ME_MK3

No! ;)

Cheers,
Hermann

Quoted 102 lines

-Andy

Quoted 99 lines

Good luck,
Andy

Quoted 93 lines

Here are my additions in cx88-cards.c:

diff -r 0a072dd11cd8 linux/drivers/media/video/cx88/cx88-cards.c
--- a/linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54
2008 -0300
+++ b/linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36
2008 +0200

linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36 2008 +0200 renamed from linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54 2008 -0300 +49 -0
@@ -1300,6 +1300,52 @@
         }},
         .mpeg           = CX88_MPEG_DVB,
     },
+    [CX88_BOARD_WINFAST_DTV2000H_VERSION_J] = {
+        /* Radio still in testing */
+        .name           = "WinFast DTV2000 H (version J)",
+        .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
+        .radio_type     = UNSET,
+        .tuner_addr     = ADDR_UNSET,
+        .radio_addr     = ADDR_UNSET,
+        .tda9887_conf   = TDA9887_PRESENT,
+        .input          = {{
+            .type   = CX88_VMUX_TELEVISION,
+            .vmux   = 0,
+            .gpio0  = 0x00013700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_CABLE,
+            .vmux   = 0,
+            .gpio0  = 0x0001b700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x0001b700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_COMPOSITE1,
+            .vmux   = 1,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_SVIDEO,
+            .vmux   = 2,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        } },
+        .radio = {
+            .type   = CX88_RADIO,
+            .gpio0  = 0x00013702,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013702,
+            .gpio3  = 0x02000000,
+        },
+    },
     [CX88_BOARD_GENIATECH_DVBS] = {
         .name          = "Geniatech DVB-S",
         .tuner_type    = TUNER_ABSENT,
@@ -1957,6 +2003,10 @@
         .subdevice = 0x665e,
         .card      = CX88_BOARD_WINFAST_DTV2000H,
     },{
+        .subvendor = 0x107d,
+        .subdevice = 0x6f2b,
+        .card      = CX88_BOARD_WINFAST_DTV2000H_VERSION_J,
+    },{
         .subvendor = 0x18ac,
         .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
         .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,

Would there be someone in the list with cx88 driver knowledge who already achieved this for another board and could hint me on things to look for?

I kindof reached the limits of my imagination and would really appreciate a help.

So far my modprobe.conf reads:

options tda9887 debug=1
options cx22702 debug=1
options cx88xx i2c_debug=1 i2c_scan=1 audio_debug=1 options cx8800 video_debug=1

and I would join the dmesg output if I did not care to flood the list.

Just let me know if it could help.

Thanks in advance
Andre

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

#6 lore raw
In reply to Andre Auzi

Am Donnerstag, den 08.05.2008, 23:30 +0200 schrieb Andre Auzi:

Quoted 100 lines

Hello list,

I've started the task to add support of the board mentionned above.

So far I've got analog TV, Composite and Svideo inputs working OK with IR as well.

Unfortunately, my area does not have DVB-T yet, but from the scans I've made, I'm confident DVB support is on good tracks.

Nevertheless, I cannot achieve to have the radio input working.

The gpio values were captured with regspy on a working windows installation.

Here are my additions in cx88-cards.c:

diff -r 0a072dd11cd8 linux/drivers/media/video/cx88/cx88-cards.c
--- a/linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54
2008 -0300
+++ b/linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36
2008 +0200

linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36 2008 +0200 renamed from linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54 2008 -0300 +49 -0
@@ -1300,6 +1300,52 @@
         }},
         .mpeg           = CX88_MPEG_DVB,
     },
+    [CX88_BOARD_WINFAST_DTV2000H_VERSION_J] = {
+        /* Radio still in testing */
+        .name           = "WinFast DTV2000 H (version J)",
+        .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
+        .radio_type     = UNSET,
+        .tuner_addr     = ADDR_UNSET,
+        .radio_addr     = ADDR_UNSET,
+        .tda9887_conf   = TDA9887_PRESENT,
+        .input          = {{
+            .type   = CX88_VMUX_TELEVISION,
+            .vmux   = 0,
+            .gpio0  = 0x00013700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_CABLE,
+            .vmux   = 0,
+            .gpio0  = 0x0001b700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x0001b700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_COMPOSITE1,
+            .vmux   = 1,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_SVIDEO,
+            .vmux   = 2,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        } },
+        .radio = {
+            .type   = CX88_RADIO,
+            .gpio0  = 0x00013702,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013702,
+            .gpio3  = 0x02000000,
+        },
+    },
     [CX88_BOARD_GENIATECH_DVBS] = {
         .name          = "Geniatech DVB-S",
         .tuner_type    = TUNER_ABSENT,
@@ -1957,6 +2003,10 @@
         .subdevice = 0x665e,
         .card      = CX88_BOARD_WINFAST_DTV2000H,
     },{
+        .subvendor = 0x107d,
+        .subdevice = 0x6f2b,
+        .card      = CX88_BOARD_WINFAST_DTV2000H_VERSION_J,
+    },{
         .subvendor = 0x18ac,
         .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
         .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,

Would there be someone in the list with cx88 driver knowledge who already achieved this for another board and could hint me on things to look for?

I kindof reached the limits of my imagination and would really appreciate a help.

So far my modprobe.conf reads:

options tda9887 debug=1
options cx22702 debug=1
options cx88xx i2c_debug=1 i2c_scan=1 audio_debug=1 options cx8800 video_debug=1

Quoted 8 lines

and I would join the dmesg output if I did not care to flood the list.

Just let me know if it could help.

Thanks in advance
Andre

Hi Andre,

guess we could need someone to tell about SECAM_L NICAM stereo on latest, you might have had a reason to send your current saa7134 patch for 2.6.24 only, eventually?

For the radio, see my previous posts to Andy.

Radio on the FMD1216ME/I MK3 is not perfect anyway, on other stuff it might also only be the best hack around then, but some still claim new hardware doesn't exist ...

Your Items saa7134 patch is not unnoticed, but I would have a lot of questions and maybe Hartmut, Nickolay and everybody still interested too.

Try to send it again, read about new cards on the v4l-wiki and about patches on a recent v4l-dvb mercurial, we don't invent the rules ...

As a hint, you might have much better chances for somebody to start looking at it, if you split the card and remote addition in two separate patches.

Cheers,
Hermann

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

#7 lore raw

Am Freitag, den 09.05.2008, 03:30 +0200 schrieb hermann pitton:

Quoted 6 lines

Am Donnerstag, den 08.05.2008, 23:30 +0200 schrieb Andre Auzi:

Radio on the FMD1216ME/I MK3 is not perfect anyway, on other stuff it might also only be the best hack around then, but some still claim new hardware doesn't exist ...

One is missing here.

You might have the newer FMD1216MEX, Steve mentioned sometime previously, it might be slightly different for the radio support.

I do know exactly nothing about it.

Cheers,
Hermann

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

author
#5 lore raw
In reply to hermann pitton
Quoted 43 lines · hermann pitton

Am Donnerstag, den 08.05.2008, 20:13 -0400 schrieb Andy Walls:

Quoted 31 lines · Andre Auzi
Quoted 11 lines

Hello list,

I've started the task to add support of the board mentionned above.

So far I've got analog TV, Composite and Svideo inputs working OK with IR as well.

Unfortunately, my area does not have DVB-T yet, but from the scans I've made, I'm confident DVB support is on good tracks.

Nevertheless, I cannot achieve to have the radio input working.

The gpio values were captured with regspy on a working windows installation.

With the ivtv driver, I helped debug the LG TAPE-H series tuner on the PVR-150MCE not demodulating FM radio. (Hans actually got the fix put in.) The problem turned out to be the incorrect "bandswitch byte" being set in tuner-simple.c. AFAICT, the gpio values for the CX23416 aren't used to set the FM radio on the PVR-150MCE.

There is a "bandswitch byte" in the synthesizer/1st mixer chip (probably a tua603x chip) in the tuner that controls some gpio pins. These gpio pins setup the tuner's preselector by switching in the proper bandpass filter for the Low VHF, FM, High-VHF, or UHF bands

For the FM1216ME_MK3 tuner (not the FMD1216ME_MK3) this bandswitch byte needs to be set to 0x98 for FM stereo or 0x9a for FM mono.

I notice in tuner-simple.c:simple_radio_bandswitch(), that for both the FM1216ME_MK3 and the FMD1216ME_MK3, the bandswitch byte for FM is coded as 0x19. This is a bit-reversal of 0x98. This seems wrong according to the FM1216ME_MK3 tuner datasheet here:

Quoted 6 lines

http://dl.ivtvdriver.org/datasheets/tuners/FM1216ME_MK3.pdf

I can't find the FMD1216ME_MK3 datasheet with some quick google searches. I cannot conclusively say the coded bandswitch byte of 0x19 is wrong for the FMD1261ME_MK3, but I think it's worth some investigation/experimentation.

Hi,

it is, we were only hackers!

Quoted 9 lines

And there is no substitution for it.

The radio stereo hack was specific for the FM1216ME/I H-3 (MK3) and the FMD1216ME/I H-3 (MK-3) never could utilize that bit reading out the stereo status for FM ...

Cheers,
Hermann

Thanks Andy, thanks Hermann,

this gives me another start point.

It's all new stuff for me and it may take some time to digest the information but I'll do my best.

With the hardware in hands it would be a shame if I don't come up with something.

Cheers,
Andre

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

author
#10 lore raw
In reply to hermann pitton
Quoted 107 lines · hermann pitton

Am Donnerstag, den 08.05.2008, 23:30 +0200 schrieb Andre Auzi:

Quoted 95 lines

Hello list,

I've started the task to add support of the board mentionned above.

So far I've got analog TV, Composite and Svideo inputs working OK with IR as well.

Unfortunately, my area does not have DVB-T yet, but from the scans I've made, I'm confident DVB support is on good tracks.

Nevertheless, I cannot achieve to have the radio input working.

The gpio values were captured with regspy on a working windows installation.

Here are my additions in cx88-cards.c:

diff -r 0a072dd11cd8 linux/drivers/media/video/cx88/cx88-cards.c
--- a/linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54
2008 -0300
+++ b/linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36
2008 +0200

linux/drivers/media/video/cx88/cx88-cards.c Thu May 08 23:07:36 2008 +0200 renamed from linux/drivers/media/video/cx88/cx88-cards.c Wed May 07 15:42:54 2008 -0300 +49 -0
@@ -1300,6 +1300,52 @@
         }},
         .mpeg           = CX88_MPEG_DVB,
     },
+    [CX88_BOARD_WINFAST_DTV2000H_VERSION_J] = {
+        /* Radio still in testing */
+        .name           = "WinFast DTV2000 H (version J)",
+        .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
+        .radio_type     = UNSET,
+        .tuner_addr     = ADDR_UNSET,
+        .radio_addr     = ADDR_UNSET,
+        .tda9887_conf   = TDA9887_PRESENT,
+        .input          = {{
+            .type   = CX88_VMUX_TELEVISION,
+            .vmux   = 0,
+            .gpio0  = 0x00013700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_CABLE,
+            .vmux   = 0,
+            .gpio0  = 0x0001b700,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x0001b700,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_COMPOSITE1,
+            .vmux   = 1,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        },{
+            .type   = CX88_VMUX_SVIDEO,
+            .vmux   = 2,
+            .gpio0  = 0x00013701,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013701,
+            .gpio3  = 0x02000000,
+        } },
+        .radio = {
+            .type   = CX88_RADIO,
+            .gpio0  = 0x00013702,
+            .gpio1  = 0x0000a207,
+            .gpio2  = 0x00013702,
+            .gpio3  = 0x02000000,
+        },
+    },
     [CX88_BOARD_GENIATECH_DVBS] = {
         .name          = "Geniatech DVB-S",
         .tuner_type    = TUNER_ABSENT,
@@ -1957,6 +2003,10 @@
         .subdevice = 0x665e,
         .card      = CX88_BOARD_WINFAST_DTV2000H,
     },{
+        .subvendor = 0x107d,
+        .subdevice = 0x6f2b,
+        .card      = CX88_BOARD_WINFAST_DTV2000H_VERSION_J,
+    },{
         .subvendor = 0x18ac,
         .subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
         .card      = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,

Would there be someone in the list with cx88 driver knowledge who already achieved this for another board and could hint me on things to look for?

I kindof reached the limits of my imagination and would really appreciate a help.

So far my modprobe.conf reads:

options tda9887 debug=1
options cx22702 debug=1
options cx88xx i2c_debug=1 i2c_scan=1 audio_debug=1 options cx8800 video_debug=1

Quoted 8 lines

and I would join the dmesg output if I did not care to flood the list.

Just let me know if it could help.

Thanks in advance
Andre

Hi Andre,

Quoted 4 lines

guess we could need someone to tell about SECAM_L NICAM stereo on latest, you might have had a reason to send your current saa7134 patch for 2.6.24 only, eventually?

Hi Hermann,

that's different matters but I'm glad somebody noticed.

I've mentioned the kernel version just because it is the one I tested the patch with.

Now that I've evolved to 2.6.25 (thanks to F9 preview) I can say that it
would work for it too but I had to patch around mercurial's code
elsewhere (mt9m001.c for i2c interface and zoran_procfs.c where I've just removed proc fs support) to have it compile with this new version.

Quoted 11 lines

For the radio, see my previous posts to Andy.

Radio on the FMD1216ME/I MK3 is not perfect anyway, on other stuff it might also only be the best hack around then, but some still claim new hardware doesn't exist ...

Your Items saa7134 patch is not unnoticed, but I would have a lot of questions and maybe Hartmut, Nickolay and everybody still interested too.

This was a first (lucky?) try and it kind of magically worked at last.

I'll be happy if I can give good answers.

Quoted 10 lines

Try to send it again, read about new cards on the v4l-wiki and about patches on a recent v4l-dvb mercurial, we don't invent the rules ...

As a hint, you might have much better chances for somebody to start looking at it, if you split the card and remote addition in two separate patches.

Cheers,
Hermann

It would had been surprising if I did not break one rule or two ;)

It was not intended though and I will follow your advice.

Especially because I'm not completely happy with the state I've reached with the S-video input (I thought the cable I've used could be in cause but I reused it since then and apparently the thing needs some more work)

Thanks for the hint and just let me know if I can be of any use for some tests with our (excuse my french ;) damn standards

Andre

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

author
#8 lore raw
In reply to hermann pitton
Quoted 9 lines · hermann pitton

Am Freitag, den 09.05.2008, 03:30 +0200 schrieb hermann pitton:

Quoted 5 lines

Am Donnerstag, den 08.05.2008, 23:30 +0200 schrieb Andre Auzi:

Radio on the FMD1216ME/I MK3 is not perfect anyway, on other stuff it might also only be the best hack around then, but some still claim new hardware doesn't exist ...

One is missing here.

Quoted 10 lines

You might have the newer FMD1216MEX, Steve mentioned sometime previously, it might be slightly different for the radio support.

I do know exactly nothing about it.

Cheers,
Hermann

From the driver's inf file I read:

[LR6F2B.AddReg] HKR,"DriverData","FMD1216MEX",0x0010001, 0x01, 0x00, 0x00, 0x00

This probably means you guessed right.

That's a step forward, isn't it?

Too bad you cannot say more.

I'll keep you posted.

Rgards,
Andre

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

#9 lore raw

Am Freitag, den 09.05.2008, 18:17 +0200 schrieb Andre Auzi:

Quoted 28 lines
Quoted 9 lines · hermann pitton

Am Freitag, den 09.05.2008, 03:30 +0200 schrieb hermann pitton:

Quoted 5 lines

Am Donnerstag, den 08.05.2008, 23:30 +0200 schrieb Andre Auzi:

Radio on the FMD1216ME/I MK3 is not perfect anyway, on other stuff it might also only be the best hack around then, but some still claim new hardware doesn't exist ...

One is missing here.

Quoted 10 lines

You might have the newer FMD1216MEX, Steve mentioned sometime previously, it might be slightly different for the radio support.

I do know exactly nothing about it.

Cheers,
Hermann

From the driver's inf file I read:

[LR6F2B.AddReg] HKR,"DriverData","FMD1216MEX",0x0010001, 0x01, 0x00, 0x00, 0x00

This probably means you guessed right.

Quoted 8 lines

That's a step forward, isn't it?

Too bad you cannot say more.

I'll keep you posted.

Rgards,
Andre

It might explain it, but is based only on rumors.

If the MEX is really different, it should have its own tuner definition and also not point to the FMD1216ME/I H-3 (MK3) in tveeprom anymore.

The rule is to avoid plain duplication, but the slightest difference justifies a new tuner entry.

On that saa7134 you have I had only a quick look at their website.

There seems not to be a card with saa7135 device, and more important, I don't see anything pointing to an empress style mpeg encoder, which you have enabled.

We need complete chip listing, if possible high resolution photos and as an absolute minimum dmesg with i2c_scan=1 enabled.

The saa7134 chip device there seems to have a well known remote, maybe you can discover it at the bttv-gallery.de.

We seem also to have a problem how to collect information about new devices currently, the v4l-wiki is by far not sufficient enough to look something up and Gunther at the bttv gallery might have it sick, dunno.

I'm not a fan of ASCII art in saa7134-input, that should have a place on the wiki and/or the bttv-gallery.

Without looking closer, you should _not_ have the keypress at 0x8000 in the gpiomask of the card in saa7134-cards.c, but only in saa7134-input.c. If that is not sufficient, something weird is going on.

Most consumer devices in Europe, almost always SCART is used for s-video here, do only output composite, even on their s-video connectors. That might explain the black and white only. Also vmux 8 seems to be untested.

The most astonishing you have is tda9887 port2 inactive and intercarrier demodulation, and that should work with a claimed FM1216ME/I H-3 (MK3) on SECAM_L !

Almost impossible for my limited experience.

We need hard facts about that tuner on the board.

Have a look at tuner-types.h/c and what is needed to have the MK3s functional for all such different standards. To force something in the card's entry will override all such, and as said, I'm scratching my head, how you could ever have SECAM_L functional with what you choose ;)

Send new patches and those interested might continue with it there.

Cheers,
Hermann

--
video4linux-list mailing list
Unsubscribe mailto:[email protected]?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list