[media] [PATH,1/2] mxl5007 move reset to attach
authorJose Alberto Reguero <jareguero@telefonica.net>
Sun, 3 Feb 2013 21:30:38 +0000 (18:30 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 8 Feb 2013 17:37:30 +0000 (15:37 -0200)
This patch move the soft reset to the attach function because with dual
tuners, when one tuner do reset, the other one is perturbed, and the
stream has errors.

Signed-off-by: Jose Alberto Reguero <jareguero@telefonica.net>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/tuners/mxl5007t.c

index 69e453ef0a1a8631ae3067fb9eb2780fa7768040..eb61304c260da3115c3f243e4e3d15f3c034f97f 100644 (file)
@@ -531,10 +531,6 @@ static int mxl5007t_tuner_init(struct mxl5007t_state *state,
        struct reg_pair_t *init_regs;
        int ret;
 
-       ret = mxl5007t_soft_reset(state);
-       if (mxl_fail(ret))
-               goto fail;
-
        /* calculate initialization reg array */
        init_regs = mxl5007t_calc_init_regs(state, mode);
 
@@ -900,7 +896,20 @@ struct dvb_frontend *mxl5007t_attach(struct dvb_frontend *fe,
                /* existing tuner instance */
                break;
        }
+
+       if (fe->ops.i2c_gate_ctrl)
+               fe->ops.i2c_gate_ctrl(fe, 1);
+
+       ret = mxl5007t_soft_reset(state);
+
+       if (fe->ops.i2c_gate_ctrl)
+               fe->ops.i2c_gate_ctrl(fe, 0);
+
+       if (mxl_fail(ret))
+               goto fail;
+
        fe->tuner_priv = state;
+
        mutex_unlock(&mxl5007t_list_mutex);
 
        memcpy(&fe->ops.tuner_ops, &mxl5007t_tuner_ops,