[linux-dvb] AVerTV-771 not working anymore

Ronny Peine RonnyPeine at gmx.de
Tue Aug 9 21:03:46 CEST 2005

Hi again,

i made a small change in mt352.c in the function mt352_attach:

struct dvb_frontend* mt352_attach(const struct mt352_config* config,
                                   struct i2c_adapter* i2c)
         struct mt352_state* state = NULL;

         /* allocate memory for the internal state */
         state = kmalloc(sizeof(struct mt352_state), GFP_KERNEL);
         if (state == NULL) goto error;

         /* setup the state */
         state->i2c = i2c;
         memcpy(&state->config,config,sizeof(struct mt352_config));
         memcpy(&state->ops, &mt352_ops, sizeof(struct dvb_frontend_ops));

         /* hard reset */
         state->frontend.ops = &state->ops;
         state->frontend.demodulator_priv = state;

         if (&state->frontend != NULL) {
         static u8 mt352_reset_attach [] = { RESET, 0xC0 };
         mt352_write(&state->frontend, mt352_reset_attach, 
         } else {
                 printk("frontend is NULL\n");

         /* check if the demod is there */
         if (mt352_read_register(state, CHIP_ID) != ID_MT352) goto error;

         /* create dvb_frontend */
         state->frontend.ops = &state->ops;
         state->frontend.demodulator_priv = state;
         return &state->frontend;

         return NULL;

The change is within the /**/.
I tried to do a hard-reset with this additions but it only lead to the 
following error:

mt352_write() to reg 50 failed (err = -5)!
mt352_read_register: readreg error (reg=127, ret==-5)
dvb-bt8xx: A frontend driver was not found for device 109e/0878 
subsystem 1461/0771

After digging into mt352_write and mt352_single_write i can see that it 
uses i2c_transfer for writing the proper values into the regs.
Maybe there is something wrong with i2c_transfer? Has anybody an idea 
how i could dig deeper in this issue or how to debug it more properly?

Thanks for any hint.

More information about the linux-dvb mailing list