Huang Shijie wrote:
> The TLG2300 is a chip of Telegent System.
> It support analog tv,DVB-T and radio in a single chip.
> The chip has been used in several dongles, such as aeromax DH-9000:
>       http://www.b2bdvb.com/dh-9000.htm
> 
> You can get more info from:
>       [1] http://www.telegent.com/
>       [2] http://www.telegent.com/press/2009Sept14_CSI.html
> 
> The driver is based Mauro's subtree(2.6.33-rc4).      
>       
> about country code:
>       The country code is needed for firmware, so I can not remove it.
>       If I remove it, the audio will not work properly.

I'm assuming that you're referring to the analog part, right? 

Instead of a country code, the driver should use the V4L2_STD_ macros to
determine the audio standard. Please take a look at saa7134-tvaudio code. It has
an interesting logic to associate the V4L2_STD with the corresponding audio 
settings:

For example, the audio carrier frequency and the audio standard are at tvaudio 
array:

static struct saa7134_tvaudio tvaudio[] = {
        {
                .name          = "PAL-B/G FM-stereo",
                .std           = V4L2_STD_PAL_BG,
                .mode          = TVAUDIO_FM_BG_STEREO,
                .carr1         = 5500,
                .carr2         = 5742,
        },{
                .name          = "PAL-D/K1 FM-stereo",
                .std           = V4L2_STD_PAL_DK,
                .carr1         = 6500,
                .carr2         = 6258,
                .mode          = TVAUDIO_FM_BG_STEREO,
        },{
                .name          = "PAL-D/K2 FM-stereo",
                .std           = V4L2_STD_PAL_DK,
                .carr1         = 6500,
                .carr2         = 6742,
                .mode          = TVAUDIO_FM_BG_STEREO,
        },{
                .name          = "PAL-D/K3 FM-stereo",
                .std           = V4L2_STD_PAL_DK,
                .carr1         = 6500,
                .carr2         = 5742,
                .mode          = TVAUDIO_FM_BG_STEREO,
        },{
                .name          = "PAL-B/G NICAM",
                .std           = V4L2_STD_PAL_BG,
                .carr1         = 5500,
                .carr2         = 5850,
                .mode          = TVAUDIO_NICAM_FM,
        },{
                .name          = "PAL-I NICAM",
                .std           = V4L2_STD_PAL_I,
                .carr1         = 6000,
                .carr2         = 6552,
                .mode          = TVAUDIO_NICAM_FM,
        },{
                .name          = "PAL-D/K NICAM",
                .std           = V4L2_STD_PAL_DK,
                .carr1         = 6500,
                .carr2         = 5850,
                .mode          = TVAUDIO_NICAM_FM,
        },{
                .name          = "SECAM-L NICAM",
                .std           = V4L2_STD_SECAM_L,
                .carr1         = 6500,
                .carr2         = 5850,
                .mode          = TVAUDIO_NICAM_AM,
        },{
...
}

Btw, probably the most complicated device, in terms of firmware, is the xc3028. 
It has one
different firmware for each different combination of standard. There are 80 
different firmwares
at the version 3.6. Each time a firmware changes, a reset via GPIO should be 
sent to the device.

The tuner-xc3028 has a logic that re-loads the firmware if the standard 
changes, and the 
new standard is not supported by the current firmware. So, it may help if you 
also take a
look at tuner-xc2028.

-- 

Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to