V4L/DVB (11586): stv090x: switch i/p ADC as well during Power management
authorManu Abraham <abraham.manu@gmail.com>
Wed, 8 Apr 2009 21:27:10 +0000 (18:27 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 16 Jun 2009 21:20:39 +0000 (18:20 -0300)
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/stv090x.c

index 6aaeda1..4dc723c 100644 (file)
@@ -3494,6 +3494,11 @@ static int stv090x_sleep(struct dvb_frontend *fe)
        if (stv090x_write_reg(state, STV090x_SYNTCTRL, reg) < 0)
                goto err;
 
+       reg = stv090x_read_reg(state, STV090x_TSTTNR1);
+       STV090x_SETFIELD(reg, ADC1_PON_FIELD, 0);
+       if (stv090x_write_reg(state, STV090x_TSTTNR1, reg) < 0)
+               goto err;
+
        return 0;
 err:
        dprintk(FE_ERROR, 1, "I/O error");
@@ -3513,6 +3518,11 @@ static int stv090x_wakeup(struct dvb_frontend *fe)
        if (stv090x_write_reg(state, STV090x_SYNTCTRL, reg) < 0)
                goto err;
 
+       reg = stv090x_read_reg(state, STV090x_TSTTNR1);
+       STV090x_SETFIELD(reg, ADC1_PON_FIELD, 1);
+       if (stv090x_write_reg(state, STV090x_TSTTNR1, reg) < 0)
+               goto err;
+
        return 0;
 err:
        dprintk(FE_ERROR, 1, "I/O error");