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);
 
 
        ret = mxl5007t_soft_reset(state);
 
+       if (fe->ops.i2c_gate_ctrl)
+               fe->ops.i2c_gate_ctrl(fe, 0);
+
+       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);