V4L/DVB (7434): tda18271: set rfagc modes during channel configuration
authorMichael Krufky <mkrufky@linuxtv.org>
Tue, 22 Apr 2008 17:46:22 +0000 (14:46 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Thu, 24 Apr 2008 17:07:55 +0000 (14:07 -0300)
Set rfagc to high speed mode before setting the pll.
Set rfagc to normal speed mode at the end of the function.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/frontends/tda18271-fe.c

index 4a025849a327c9d1b38579bcb6221cc8b071319b..b3b0425dbbed03ed740efb34edc80c86bd07beb3 100644 (file)
@@ -50,6 +50,9 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe,
        regs[R_EP3]  &= ~0x1f; /* clear std bits */
        regs[R_EP3]  |= (map->agc_mode << 3) | map->std;
 
+       /* set rfagc to high speed mode */
+       regs[R_EP3] &= ~0x04;
+
        /* set cal mode to normal */
        regs[R_EP4]  &= ~0x03;
 
@@ -125,7 +128,14 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe,
        regs[R_EB4] &= ~0x20;
        tda18271_write_regs(fe, R_EB4, 1);
 
-       msleep(5);
+       msleep(20);
+
+       /* set rfagc to normal speed mode */
+       if (map->fm_rfn)
+               regs[R_EP3] &= ~0x04;
+       else
+               regs[R_EP3] |= 0x04;
+       tda18271_write_regs(fe, R_EP3, 1);
 
        return 0;
 }