diff options
author | Manu Abraham <manu@linuxtv.org> | 2008-01-18 18:28:48 +0400 |
---|---|---|
committer | Manu Abraham <manu@linuxtv.org> | 2008-01-18 18:28:48 +0400 |
commit | e26b6fdba08d411586b8a313be072175217f697f (patch) | |
tree | 1530ac72d6292b21dbd660b17213a5796e68ed43 /linux/drivers/media | |
parent | 9c44a82e63fa63c7930da98e87ece51dc8f2c01d (diff) | |
download | mediapointer-dvb-s2-e26b6fdba08d411586b8a313be072175217f697f.tar.gz mediapointer-dvb-s2-e26b6fdba08d411586b8a313be072175217f697f.tar.bz2 |
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
From: Manu Abraham <abraham.manu@gmail.com>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Diffstat (limited to 'linux/drivers/media')
-rw-r--r-- | linux/drivers/media/dvb/frontends/stb0899_drv.c | 5 | ||||
-rw-r--r-- | linux/drivers/media/dvb/frontends/stb6100.c | 2 |
2 files changed, 3 insertions, 4 deletions
diff --git a/linux/drivers/media/dvb/frontends/stb0899_drv.c b/linux/drivers/media/dvb/frontends/stb0899_drv.c index 450ab094e..2790989b6 100644 --- a/linux/drivers/media/dvb/frontends/stb0899_drv.c +++ b/linux/drivers/media/dvb/frontends/stb0899_drv.c @@ -1595,8 +1595,7 @@ static enum dvbfe_search stb0899_search(struct dvb_frontend *fe, struct dvbfe_pa } dprintk(verbose, FE_DEBUG, 1, "delivery system=%d", state->delsys); - SearchRange = 3000000; /* Search Bandwidth (3 Mhz, was initially 10 Mhz) */ -// SearchRange = 10000000; /* Search Bandwidth (3 Mhz, was initially 10 Mhz) */ + SearchRange = 10000000; dprintk(verbose, FE_DEBUG, 1, "Frequency=%d, Srate=%d", i_params->freq, i_params->srate); /* checking Search Range is meaningless for a fixed 3 Mhz */ if (INRANGE(i_params->srate, 1000000, 45000000)) { @@ -1667,7 +1666,7 @@ static enum dvbfe_search stb0899_search(struct dvb_frontend *fe, struct dvbfe_pa internal->srch_range = SearchRange; if (state->config->tuner_set_bandwidth) - state->config->tuner_set_bandwidth(fe, (135 * (stb0899_carr_width(state) + SearchRange)) / 100); + state->config->tuner_set_bandwidth(fe, (stb0899_carr_width(state) + SearchRange)); if (state->config->tuner_get_bandwidth) state->config->tuner_get_bandwidth(fe, &internal->tuner_bw); diff --git a/linux/drivers/media/dvb/frontends/stb6100.c b/linux/drivers/media/dvb/frontends/stb6100.c index bea9b9306..01424eee8 100644 --- a/linux/drivers/media/dvb/frontends/stb6100.c +++ b/linux/drivers/media/dvb/frontends/stb6100.c @@ -269,7 +269,7 @@ static int stb6100_set_bandwidth(struct dvb_frontend *fe, u32 bandwidth) dprintk(verbose, FE_DEBUG, 1, "set bandwidth to %u kHz", bandwidth); - bandwidth *= 1000 / 2; /* kHz -> Hz, bw / 2 */ + bandwidth /= 2; /* ZIF */ if (bandwidth > 36000000) /* F[4:0] BW/2 max =31+5=36 mhz for F=31 */ tmp = 31; |