[PATCH] dvb: frontend: ves1820: improve tuning
authorJohannes Stezenbach <js@linuxtv.org>
Fri, 9 Sep 2005 20:02:34 +0000 (13:02 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 9 Sep 2005 20:57:38 +0000 (13:57 -0700)
Reset acgconf register after tuning to improve locking, as suggested by Marco
Schluessler.  Minor cleanups in ves1820_init().

Signed-off-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/media/dvb/frontends/ves1820.c

index 70fb44b..c6d2766 100644 (file)
@@ -194,19 +194,18 @@ static int ves1820_init(struct dvb_frontend* fe)
 {
        struct ves1820_state* state = fe->demodulator_priv;
        int i;
-       int val;
 
        ves1820_writereg(state, 0, 0);
 
-       for (i = 0; i < 53; i++) {
-               val = ves1820_inittab[i];
-               if ((i == 2) && (state->config->selagc)) val |= 0x08;
-               ves1820_writereg(state, i, val);
-       }
+       for (i = 0; i < sizeof(ves1820_inittab); i++)
+               ves1820_writereg(state, i, ves1820_inittab[i]);
+       if (state->config->selagc)
+               ves1820_writereg(state, 2, ves1820_inittab[2] | 0x08);
 
        ves1820_writereg(state, 0x34, state->pwm);
 
-       if (state->config->pll_init) state->config->pll_init(fe);
+       if (state->config->pll_init)
+               state->config->pll_init(fe);
 
        return 0;
 }
@@ -234,7 +233,7 @@ static int ves1820_set_parameters(struct dvb_frontend* fe, struct dvb_frontend_p
        ves1820_writereg(state, 0x09, reg0x09[real_qam]);
 
        ves1820_setup_reg0(state, reg0x00[real_qam], p->inversion);
-
+       ves1820_writereg(state, 2, ves1820_inittab[2] | (state->config->selagc ? 0x08 : 0));
        return 0;
 }