V4L/DVB (9407): Optimizations Reduce capture range from 10MHz to 3Mhz
authorManu Abraham <abraham.manu@gmail.com>
Wed, 26 Sep 2007 21:32:13 +0000 (18:32 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 29 Dec 2008 19:53:17 +0000 (17:53 -0200)
* Reduces szapping time a lot
* increased stability at Low Symbol rates
* overall increases reliability in tuning

Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/stb0899_drv.c

index ce1016e..67f6edf 100644 (file)
@@ -1481,8 +1481,8 @@ 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 = 3000000; /* Search Bandwidth (3 Mhz, was initially 10  Mhz)       */
+//     SearchRange = 10000000; /* Search Bandwidth (3 Mhz, was initially 10  Mhz)      */
        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)) {
@@ -1521,7 +1521,7 @@ static enum dvbfe_search stb0899_search(struct dvb_frontend *fe, struct dvbfe_pa
 
                        /* What to do for tuners having no bandwidth setup ?    */
                        if (state->config->tuner_set_bandwidth)
-                               state->config->tuner_set_bandwidth(fe, (13 * (stb0899_carr_width(state) + 10000000)) / 10);
+                               state->config->tuner_set_bandwidth(fe, (135 * (stb0899_carr_width(state) + SearchRange)) / 100);
                        if (state->config->tuner_get_bandwidth)
                                state->config->tuner_get_bandwidth(fe, &internal->tuner_bw);
                        /* Set DVB-S1 AGC               */
@@ -1553,7 +1553,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, (stb0899_carr_width(state) + 10000000));
+                               state->config->tuner_set_bandwidth(fe, (135 * (stb0899_carr_width(state) + SearchRange)) / 100);
                        if (state->config->tuner_get_bandwidth)
                                state->config->tuner_get_bandwidth(fe, &internal->tuner_bw);