On Viernes, 11 de enero de 2013 20:38:01 Antti Palosaari escribió:
> Hello Jose and Gianluca
> 
> Could you test that (tda18218 & mxl5007t):
> http://git.linuxtv.org/anttip/media_tree.git/shortlog/refs/heads/it9135_tune
> r
> 
> I wonder if ADC config logic still works for superheterodyne tuners
> (tuner having IF). I changed it to adc / 2 always due to IT9135 tuner.
> That makes me wonder it possible breaks tuners having IF, as ADC was
> clocked just over 20MHz and if it is half then it is 10MHz. For BB that
> is enough, but I think that having IF, which is 4MHz at least for 8MHz
> BW it is too less.
> 
> F*ck I hate to maintain driver without a hardware! Any idea where I can
> get AF9035 device having tda18218 or mxl5007t?
> 
> regards
> Antti

Still pending the changes for  mxl5007t. Attached is a patch for that.

Changes to make work Avermedia Twinstar with the af9035 driver.

Signed-off-by: Jose Alberto Reguero <jaregu...@telefonica.net>

Jose Alberto

diff -upr linux/drivers/media/tuners/mxl5007t.c 
linux.new/drivers/media/tuners/mxl5007t.c
--- linux/drivers/media/tuners/mxl5007t.c       2012-08-14 05:45:22.000000000 
+0200
+++ linux.new/drivers/media/tuners/mxl5007t.c   2013-01-10 19:23:09.247556275 
+0100
@@ -374,7 +374,6 @@ static struct reg_pair_t *mxl5007t_calc_
        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);
 
@@ -531,9 +530,12 @@ static int mxl5007t_tuner_init(struct mx
        struct reg_pair_t *init_regs;
        int ret;
 
-       ret = mxl5007t_soft_reset(state);
-       if (mxl_fail(ret))
+       if (!state->config->no_reset) {
+               ret = mxl5007t_soft_reset(state);
+               if (mxl_fail(ret))
                goto fail;
+       }
+
 
        /* calculate initialization reg array */
        init_regs = mxl5007t_calc_init_regs(state, mode);
@@ -887,7 +889,12 @@ struct dvb_frontend *mxl5007t_attach(str
                if (fe->ops.i2c_gate_ctrl)
                        fe->ops.i2c_gate_ctrl(fe, 1);
 
-               ret = mxl5007t_get_chip_id(state);
+               if (!state->config->no_probe)
+                       ret = mxl5007t_get_chip_id(state);
+
+               ret = mxl5007t_write_reg(state, 0x04,
+                       state->config->loop_thru_enable);
+
 
                if (fe->ops.i2c_gate_ctrl)
                        fe->ops.i2c_gate_ctrl(fe, 0);
diff -upr linux/drivers/media/tuners/mxl5007t.h 
linux.new/drivers/media/tuners/mxl5007t.h
--- linux/drivers/media/tuners/mxl5007t.h       2012-08-14 05:45:22.000000000 
+0200
+++ linux.new/drivers/media/tuners/mxl5007t.h   2013-01-10 19:19:11.204379581 
+0100
@@ -73,8 +73,10 @@ struct mxl5007t_config {
        enum mxl5007t_xtal_freq xtal_freq_hz;
        enum mxl5007t_if_freq if_freq_hz;
        unsigned int invert_if:1;
-       unsigned int loop_thru_enable:1;
+       unsigned int loop_thru_enable:3;
        unsigned int clk_out_enable:1;
+       unsigned int no_probe:1;
+       unsigned int no_reset:1;
 };
 
 #if defined(CONFIG_MEDIA_TUNER_MXL5007T) || 
(defined(CONFIG_MEDIA_TUNER_MXL5007T_MODULE) && defined(MODULE))
diff -upr linux/drivers/media/usb/dvb-usb-v2/af9035.c 
linux.new/drivers/media/usb/dvb-usb-v2/af9035.c
--- linux/drivers/media/usb/dvb-usb-v2/af9035.c 2013-01-07 05:45:57.000000000 
+0100
+++ linux.new/drivers/media/usb/dvb-usb-v2/af9035.c     2013-01-12 
00:30:57.557310465 +0100
@@ -886,13 +886,17 @@ static struct mxl5007t_config af9035_mxl
                .loop_thru_enable = 0,
                .clk_out_enable = 0,
                .clk_out_amp = MxL_CLKOUT_AMP_0_94V,
+               .no_probe = 1,
+               .no_reset = 1,
        }, {
                .xtal_freq_hz = MxL_XTAL_24_MHZ,
                .if_freq_hz = MxL_IF_4_57_MHZ,
                .invert_if = 0,
-               .loop_thru_enable = 1,
+               .loop_thru_enable = 3,
                .clk_out_enable = 1,
                .clk_out_amp = MxL_CLKOUT_AMP_0_94V,
+               .no_probe = 1,
+               .no_reset = 1,
        }
 };
 

 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to