V4L/DVB: [STV090x] Use gate control, while tuner is being accessed
authorManu Abraham <abraham.manu@gmail.com>
Sat, 23 Jan 2010 09:05:37 +0000 (06:05 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 18 May 2010 03:46:48 +0000 (00:46 -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 a80a34bb9eb85c3299814b07e9b6df20f3375537..3cc1be28534ee25de112c84f634b255e21860d2c 100644 (file)
@@ -3838,11 +3838,17 @@ static int stv090x_sleep(struct dvb_frontend *fe)
        struct stv090x_state *state = fe->demodulator_priv;
        u32 reg;
 
-       if (state->config->tuner_init) {
+       if (stv090x_i2c_gate_ctrl(state, 1) < 0)
+               goto err;
+
+       if (state->config->tuner_sleep) {
                if (state->config->tuner_sleep(fe) < 0)
                        goto err_gateoff;
        }
 
+       if (stv090x_i2c_gate_ctrl(state, 0) < 0)
+               goto err;
+
        dprintk(FE_DEBUG, 1, "Set %s to sleep",
                state->device == STV0900 ? "STV0900" : "STV0903");