diff options
author | Trent Piepho <xyzzy@speakeasy.org> | 2006-08-24 21:43:45 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-09-26 11:30:34 -0400 |
commit | d7304dee3b7e29e801ba59bbf9a47440c196263d (patch) | |
tree | d1b2149829323d79482a61aaf8a1cab8be4393d1 | |
parent | 62a7b3e2ada3a76f1a6887b537c07517e90f72dd (diff) |
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 <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | drivers/media/video/tda9887.c | 2 | ||||
-rw-r--r-- | drivers/media/video/tuner-simple.c | 2 | ||||
-rw-r--r-- | drivers/media/video/tuner-types.c | 1 | ||||
-rw-r--r-- | include/media/tuner-types.h | 3 | ||||
-rw-r--r-- | include/media/tuner.h | 1 |
5 files changed, 9 insertions, 0 deletions
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) | |||
480 | } | 480 | } |
481 | if ((t->tda9887_config & TDA9887_INTERCARRIER_NTSC) && (t->std & V4L2_STD_NTSC)) | 481 | if ((t->tda9887_config & TDA9887_INTERCARRIER_NTSC) && (t->std & V4L2_STD_NTSC)) |
482 | buf[1] &= ~cQSS; | 482 | buf[1] &= ~cQSS; |
483 | if (t->tda9887_config & TDA9887_GATING_18) | ||
484 | buf[3] &= ~cGating_36; | ||
483 | return 0; | 485 | return 0; |
484 | } | 486 | } |
485 | 487 | ||
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) | |||
331 | else if (params->default_top_high) | 331 | else if (params->default_top_high) |
332 | config |= TDA9887_TOP(params->default_top_high); | 332 | config |= TDA9887_TOP(params->default_top_high); |
333 | } | 333 | } |
334 | if (params->default_pll_gating_18) | ||
335 | config |= TDA9887_GATING_18; | ||
334 | i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config); | 336 | i2c_clients_command(c->adapter, TDA9887_SET_CONFIG, &config); |
335 | } | 337 | } |
336 | tuner_dbg("tv 0x%02x 0x%02x 0x%02x 0x%02x\n", | 338 | 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[] = { | |||
650 | .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges), | 650 | .count = ARRAY_SIZE(tuner_temic_4009f_5_pal_ranges), |
651 | .has_tda9887 = 1, | 651 | .has_tda9887 = 1, |
652 | .port1_invert_for_secam_lc = 1, | 652 | .port1_invert_for_secam_lc = 1, |
653 | .default_pll_gating_18 = 1, | ||
653 | }, | 654 | }, |
654 | }; | 655 | }; |
655 | 656 | ||
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 { | |||
72 | unsigned int port2_invert_for_secam_lc:1; | 72 | unsigned int port2_invert_for_secam_lc:1; |
73 | /* Some cards require PORT1 to be 1 for mono Radio FM and 0 for stereo. */ | 73 | /* Some cards require PORT1 to be 1 for mono Radio FM and 0 for stereo. */ |
74 | unsigned int port1_set_for_fm_mono:1; | 74 | unsigned int port1_set_for_fm_mono:1; |
75 | /* Select 18% (or according to datasheet 0%) L standard PLL gating, | ||
76 | vs the driver default of 36%. */ | ||
77 | unsigned int default_pll_gating_18:1; | ||
75 | /* Default tda9887 TOP value in dB for the low band. Default is 0. | 78 | /* Default tda9887 TOP value in dB for the low band. Default is 0. |
76 | Range: -16:+15 */ | 79 | Range: -16:+15 */ |
77 | signed int default_top_low:5; | 80 | 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; | |||
144 | #define TDA9887_DEEMPHASIS_50 (2<<16) | 144 | #define TDA9887_DEEMPHASIS_50 (2<<16) |
145 | #define TDA9887_DEEMPHASIS_75 (3<<16) | 145 | #define TDA9887_DEEMPHASIS_75 (3<<16) |
146 | #define TDA9887_AUTOMUTE (1<<18) | 146 | #define TDA9887_AUTOMUTE (1<<18) |
147 | #define TDA9887_GATING_18 (1<<19) | ||
147 | 148 | ||
148 | #ifdef __KERNEL__ | 149 | #ifdef __KERNEL__ |
149 | 150 | ||