OSDN Git Service

[media] [PATH,2/2] mxl5007 move loop_thru to attach
authorJose Alberto Reguero <jareguero@telefonica.net>
Sun, 3 Feb 2013 22:40:24 +0000 (19:40 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 11 Nov 2014 10:38:46 +0000 (08:38 -0200)
This patch move the loop_thru configuration to the attach function,
because with dual tuners until loop_tru configuration the other tuner
don't work.

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

index eb61304..1810ad6 100644 (file)
@@ -374,7 +374,6 @@ static struct reg_pair_t *mxl5007t_calc_init_regs(struct mxl5007t_state *state,
        mxl5007t_set_if_freq_bits(state, cfg->if_freq_hz, cfg->invert_if);
        mxl5007t_set_xtal_freq_bits(state, cfg->xtal_freq_hz);
 
-       set_reg_bits(state->tab_init, 0x04, 0x01, cfg->loop_thru_enable);
        set_reg_bits(state->tab_init, 0x03, 0x08, cfg->clk_out_enable << 3);
        set_reg_bits(state->tab_init, 0x03, 0x07, cfg->clk_out_amp);
 
@@ -908,6 +907,18 @@ struct dvb_frontend *mxl5007t_attach(struct dvb_frontend *fe,
        if (mxl_fail(ret))
                goto fail;
 
+       if (fe->ops.i2c_gate_ctrl)
+               fe->ops.i2c_gate_ctrl(fe, 1);
+
+       ret = mxl5007t_write_reg(state, 0x04,
+               state->config->loop_thru_enable);
+
+       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);