diff options
author | Manu Abraham <abraham.manu@gmail.com> | 2008-01-18 09:28:48 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-12-29 14:53:21 -0500 |
commit | 763fbaf65a3f7fd571db427a376e727faeb5bfc5 (patch) | |
tree | 39192052e71a1de6331822a3b54f4b34763abed4 /drivers | |
parent | 27a330d1240ffeaca8c7cf2a2eb6a5fbeef3c4ec (diff) |
V4L/DVB (9443): Bug: Bandwidth calculation
Bug #1: The 5 tap equaliser is set to correct simple perturbations
like reflections on the IF cable for DVB-S. In the case of DVB-S2
a more powerful equalizer is used to correct the filter group delay
allowing the bandwidth to be reduced by a factor of 1/3
Bug #2: The ZIF tuner takes badwidth to be set in Hz
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/dvb/frontends/stb0899_drv.c | 5 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/stb6100.c | 2 |
2 files changed, 3 insertions, 4 deletions
diff --git a/drivers/media/dvb/frontends/stb0899_drv.c b/drivers/media/dvb/frontends/stb0899_drv.c index d21396450259..45961193272b 100644 --- a/drivers/media/dvb/frontends/stb0899_drv.c +++ b/drivers/media/dvb/frontends/stb0899_drv.c | |||
@@ -1554,8 +1554,7 @@ static enum dvbfe_search stb0899_search(struct dvb_frontend *fe, struct dvbfe_pa | |||
1554 | } | 1554 | } |
1555 | dprintk(verbose, FE_DEBUG, 1, "delivery system=%d", state->delsys); | 1555 | dprintk(verbose, FE_DEBUG, 1, "delivery system=%d", state->delsys); |
1556 | 1556 | ||
1557 | SearchRange = 3000000; /* Search Bandwidth (3 Mhz, was initially 10 Mhz) */ | 1557 | SearchRange = 10000000; |
1558 | // SearchRange = 10000000; /* Search Bandwidth (3 Mhz, was initially 10 Mhz) */ | ||
1559 | dprintk(verbose, FE_DEBUG, 1, "Frequency=%d, Srate=%d", i_params->freq, i_params->srate); | 1558 | dprintk(verbose, FE_DEBUG, 1, "Frequency=%d, Srate=%d", i_params->freq, i_params->srate); |
1560 | /* checking Search Range is meaningless for a fixed 3 Mhz */ | 1559 | /* checking Search Range is meaningless for a fixed 3 Mhz */ |
1561 | if (INRANGE(i_params->srate, 1000000, 45000000)) { | 1560 | if (INRANGE(i_params->srate, 1000000, 45000000)) { |
@@ -1626,7 +1625,7 @@ static enum dvbfe_search stb0899_search(struct dvb_frontend *fe, struct dvbfe_pa | |||
1626 | internal->srch_range = SearchRange; | 1625 | internal->srch_range = SearchRange; |
1627 | 1626 | ||
1628 | if (state->config->tuner_set_bandwidth) | 1627 | if (state->config->tuner_set_bandwidth) |
1629 | state->config->tuner_set_bandwidth(fe, (135 * (stb0899_carr_width(state) + SearchRange)) / 100); | 1628 | state->config->tuner_set_bandwidth(fe, (stb0899_carr_width(state) + SearchRange)); |
1630 | if (state->config->tuner_get_bandwidth) | 1629 | if (state->config->tuner_get_bandwidth) |
1631 | state->config->tuner_get_bandwidth(fe, &internal->tuner_bw); | 1630 | state->config->tuner_get_bandwidth(fe, &internal->tuner_bw); |
1632 | 1631 | ||
diff --git a/drivers/media/dvb/frontends/stb6100.c b/drivers/media/dvb/frontends/stb6100.c index d19a3bfcc5fe..f4c2b8e114bf 100644 --- a/drivers/media/dvb/frontends/stb6100.c +++ b/drivers/media/dvb/frontends/stb6100.c | |||
@@ -269,7 +269,7 @@ static int stb6100_set_bandwidth(struct dvb_frontend *fe, u32 bandwidth) | |||
269 | 269 | ||
270 | dprintk(verbose, FE_DEBUG, 1, "set bandwidth to %u kHz", bandwidth); | 270 | dprintk(verbose, FE_DEBUG, 1, "set bandwidth to %u kHz", bandwidth); |
271 | 271 | ||
272 | bandwidth *= 1000 / 2; /* kHz -> Hz, bw / 2 */ | 272 | bandwidth /= 2; /* ZIF */ |
273 | 273 | ||
274 | if (bandwidth > 36000000) /* F[4:0] BW/2 max =31+5=36 mhz for F=31 */ | 274 | if (bandwidth > 36000000) /* F[4:0] BW/2 max =31+5=36 mhz for F=31 */ |
275 | tmp = 31; | 275 | tmp = 31; |