aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorManu Abraham <abraham.manu@gmail.com>2008-01-18 09:28:48 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-29 14:53:21 -0500
commit763fbaf65a3f7fd571db427a376e727faeb5bfc5 (patch)
tree39192052e71a1de6331822a3b54f4b34763abed4 /drivers
parent27a330d1240ffeaca8c7cf2a2eb6a5fbeef3c4ec (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.c5
-rw-r--r--drivers/media/dvb/frontends/stb6100.c2
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;