From: Trent Piepho Date: Fri, 25 Aug 2006 01:43:45 +0000 (-0300) Subject: V4L/DVB (4533): Tda9887: add configuration setting for L standard PLL gating X-Git-Tag: v2.6.19-rc1~643^2~53 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=d7304dee3b7e29e801ba59bbf9a47440c196263d;p=karo-tx-linux.git V4L/DVB (4533): Tda9887: add configuration setting for L standard PLL gating Add a tuner config parameter for TDA9887, default_pll_gating_18, that changes the L standard PLL gating value from 36% to 0% (datasheet says 0%, tda9887 code says 18%). Turn this on for Microtune 4049FM5, as recomended by tuner datasheet. Signed-off-by: Trent Piepho Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/tda9887.c b/drivers/media/video/tda9887.c index 8dab481d384a..87ffb0e84a7a 100644 --- a/drivers/media/video/tda9887.c +++ b/drivers/media/video/tda9887.c @@ -480,6 +480,8 @@ static int tda9887_set_config(struct tuner *t, char *buf) } if ((t->tda9887_config & TDA9887_INTERCARRIER_NTSC) && (t->std & V4L2_STD_NTSC)) buf[1] &= ~cQSS; + if (t->tda9887_config & TDA9887_GATING_18) + buf[3] &= ~cGating_36; return 0; } diff --git a/drivers/media/video/tuner-simple.c b/drivers/media/video/tuner-simple.c index 4cfe71ba7304..63db4e97ae6c 100644 --- a/drivers/media/video/tuner-simple.c +++ b/drivers/media/video/tuner-simple.c @@ -331,6 +331,8 @@ static void default_set_tv_freq(struct i2c_client *c, unsigned int freq) else if (params->default_top_high) config |= TDA9887_TOP(params->default_top_high); } + if (params->default_pll_gating_18) + config |= TDA9887_GATING_18; i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config); } tuner_dbg("tv 0x%02x 0x%02x 0x%02x 0x%02x\n", diff --git a/drivers/media/video/tuner-types.c b/drivers/media/video/tuner-types.c index 8b542599ed47..8fff642fad56 100644 --- a/drivers/media/video/tuner-types.c +++ b/drivers/media/video/tuner-types.c @@ -650,6 +650,7 @@ static struct tuner_params tuner_microtune_4049_fm5_params[] = { .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges), .has_tda9887 = 1, .port1_invert_for_secam_lc = 1, + .default_pll_gating_18 = 1, }, }; diff --git a/include/media/tuner-types.h b/include/media/tuner-types.h index 3c43b95f4c0d..37dad07a8439 100644 --- a/include/media/tuner-types.h +++ b/include/media/tuner-types.h @@ -72,6 +72,9 @@ struct tuner_params { unsigned int port2_invert_for_secam_lc:1; /* Some cards require PORT1 to be 1 for mono Radio FM and 0 for stereo. */ unsigned int port1_set_for_fm_mono:1; + /* Select 18% (or according to datasheet 0%) L standard PLL gating, + vs the driver default of 36%. */ + unsigned int default_pll_gating_18:1; /* Default tda9887 TOP value in dB for the low band. Default is 0. Range: -16:+15 */ signed int default_top_low:5; diff --git a/include/media/tuner.h b/include/media/tuner.h index 2f7b00b08e88..3116e750132f 100644 --- a/include/media/tuner.h +++ b/include/media/tuner.h @@ -144,6 +144,7 @@ extern int tuner_debug; #define TDA9887_DEEMPHASIS_50 (2<<16) #define TDA9887_DEEMPHASIS_75 (3<<16) #define TDA9887_AUTOMUTE (1<<18) +#define TDA9887_GATING_18 (1<<19) #ifdef __KERNEL__