Commit d7304dee authored by Trent Piepho's avatar Trent Piepho Committed by Mauro Carvalho Chehab

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: default avatarTrent Piepho <xyzzy@speakeasy.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 62a7b3e2
...@@ -480,6 +480,8 @@ static int tda9887_set_config(struct tuner *t, char *buf) ...@@ -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)) if ((t->tda9887_config & TDA9887_INTERCARRIER_NTSC) && (t->std & V4L2_STD_NTSC))
buf[1] &= ~cQSS; buf[1] &= ~cQSS;
if (t->tda9887_config & TDA9887_GATING_18)
buf[3] &= ~cGating_36;
return 0; return 0;
} }
......
...@@ -331,6 +331,8 @@ static void default_set_tv_freq(struct i2c_client *c, unsigned int freq) ...@@ -331,6 +331,8 @@ static void default_set_tv_freq(struct i2c_client *c, unsigned int freq)
else if (params->default_top_high) else if (params->default_top_high)
config |= TDA9887_TOP(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); i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config);
} }
tuner_dbg("tv 0x%02x 0x%02x 0x%02x 0x%02x\n", tuner_dbg("tv 0x%02x 0x%02x 0x%02x 0x%02x\n",
......
...@@ -650,6 +650,7 @@ static struct tuner_params tuner_microtune_4049_fm5_params[] = { ...@@ -650,6 +650,7 @@ static struct tuner_params tuner_microtune_4049_fm5_params[] = {
.count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges), .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges),
.has_tda9887 = 1, .has_tda9887 = 1,
.port1_invert_for_secam_lc = 1, .port1_invert_for_secam_lc = 1,
.default_pll_gating_18 = 1,
}, },
}; };
......
...@@ -72,6 +72,9 @@ struct tuner_params { ...@@ -72,6 +72,9 @@ struct tuner_params {
unsigned int port2_invert_for_secam_lc:1; unsigned int port2_invert_for_secam_lc:1;
/* Some cards require PORT1 to be 1 for mono Radio FM and 0 for stereo. */ /* Some cards require PORT1 to be 1 for mono Radio FM and 0 for stereo. */
unsigned int port1_set_for_fm_mono:1; 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. /* Default tda9887 TOP value in dB for the low band. Default is 0.
Range: -16:+15 */ Range: -16:+15 */
signed int default_top_low:5; signed int default_top_low:5;
......
...@@ -144,6 +144,7 @@ extern int tuner_debug; ...@@ -144,6 +144,7 @@ extern int tuner_debug;
#define TDA9887_DEEMPHASIS_50 (2<<16) #define TDA9887_DEEMPHASIS_50 (2<<16)
#define TDA9887_DEEMPHASIS_75 (3<<16) #define TDA9887_DEEMPHASIS_75 (3<<16)
#define TDA9887_AUTOMUTE (1<<18) #define TDA9887_AUTOMUTE (1<<18)
#define TDA9887_GATING_18 (1<<19)
#ifdef __KERNEL__ #ifdef __KERNEL__
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment