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