Lines Matching defs:state
60 static int _tda10021_writereg (struct tda10021_state* state, u8 reg, u8 data)
63 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 };
66 ret = i2c_transfer (state->i2c, &msg, 1);
69 state->frontend.dvb->num, __func__, reg, data, ret);
75 static u8 tda10021_readreg (struct tda10021_state* state, u8 reg)
79 struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 },
80 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } };
83 ret = i2c_transfer (state->i2c, msg, 2);
92 static int lock_tuner(struct tda10021_state* state)
95 struct i2c_msg msg = {.addr=state->config->demod_address, .flags=0, .buf=buf, .len=2};
97 if(i2c_transfer(state->i2c, &msg, 1) != 1)
106 static int unlock_tuner(struct tda10021_state* state)
109 struct i2c_msg msg_post={.addr=state->config->demod_address, .flags=0, .buf=buf, .len=2};
111 if(i2c_transfer(state->i2c, &msg_post, 1) != 1)
119 static int tda10021_setup_reg0(struct tda10021_state *state, u8 reg0,
122 reg0 |= state->reg0 & 0x63;
124 if ((INVERSION_ON == inversion) ^ (state->config->invert == 0))
129 _tda10021_writereg (state, 0x00, reg0 & 0xfe);
130 _tda10021_writereg (state, 0x00, reg0 | 0x01);
132 state->reg0 = reg0;
136 static int tda10021_set_symbolrate (struct tda10021_state* state, u32 symbolrate)
188 _tda10021_writereg (state, 0x03, NDEC);
189 _tda10021_writereg (state, 0x0a, BDR&0xff);
190 _tda10021_writereg (state, 0x0b, (BDR>> 8)&0xff);
191 _tda10021_writereg (state, 0x0c, (BDR>>16)&0x3f);
193 _tda10021_writereg (state, 0x0d, BDRI);
194 _tda10021_writereg (state, 0x0e, SFIL);
201 struct tda10021_state* state = fe->demodulator_priv;
209 _tda10021_writereg (state, i, tda10021_inittab[i]);
211 _tda10021_writereg (state, 0x34, state->pwm);
220 _tda10021_writereg(state, 0x2a, tda10021_inittab[0x2a] & 0xef);
235 struct tda10021_state* state = fe->demodulator_priv;
286 tda10021_set_symbolrate(state, c->symbol_rate);
287 _tda10021_writereg(state, 0x34, state->pwm);
289 _tda10021_writereg(state, 0x01, qam_params[qam].agcref);
290 _tda10021_writereg(state, 0x05, qam_params[qam].lthr);
291 _tda10021_writereg(state, 0x08, qam_params[qam].mseth);
292 _tda10021_writereg(state, 0x09, qam_params[qam].aref);
298 reg0x3d = tda10021_readreg (state, 0x3d);
300 _tda10021_writereg (state, 0x3d, 0x01 | reg0x3d);
302 _tda10021_writereg (state, 0x3d, 0xfe & reg0x3d);
303 tda10021_setup_reg0(state, qam_params[qam].conf, c->inversion);
311 struct tda10021_state* state = fe->demodulator_priv;
315 //0x11[0] == EQALGO -> Equalizer algorithms state
320 sync = tda10021_readreg (state, 0x11);
336 struct tda10021_state* state = fe->demodulator_priv;
338 u32 _ber = tda10021_readreg(state, 0x14) |
339 (tda10021_readreg(state, 0x15) << 8) |
340 ((tda10021_readreg(state, 0x16) & 0x0f) << 16);
341 _tda10021_writereg(state, 0x10, (tda10021_readreg(state, 0x10) & ~0xc0)
350 struct tda10021_state* state = fe->demodulator_priv;
352 u8 config = tda10021_readreg(state, 0x02);
353 u8 gain = tda10021_readreg(state, 0x17);
364 struct tda10021_state* state = fe->demodulator_priv;
366 u8 quality = ~tda10021_readreg(state, 0x18);
374 struct tda10021_state* state = fe->demodulator_priv;
376 *ucblocks = tda10021_readreg (state, 0x13) & 0x7f;
381 _tda10021_writereg (state, 0x10, tda10021_inittab[0x10] & 0xdf);
382 _tda10021_writereg (state, 0x10, tda10021_inittab[0x10]);
390 struct tda10021_state* state = fe->demodulator_priv;
394 sync = tda10021_readreg(state, 0x11);
395 afc = tda10021_readreg(state, 0x19);
400 state->frontend.dvb->num, afc,
404 p->inversion = ((state->reg0 & 0x20) == 0x20) ^ (state->config->invert != 0) ? INVERSION_ON : INVERSION_OFF;
405 p->modulation = ((state->reg0 >> 2) & 7) + QAM_16;
418 struct tda10021_state* state = fe->demodulator_priv;
421 lock_tuner(state);
423 unlock_tuner(state);
430 struct tda10021_state* state = fe->demodulator_priv;
432 _tda10021_writereg (state, 0x1b, 0x02); /* pdown ADC */
433 _tda10021_writereg (state, 0x00, 0x80); /* standby */
440 struct tda10021_state* state = fe->demodulator_priv;
441 kfree(state);
450 struct tda10021_state* state = NULL;
453 /* allocate memory for the internal state */
454 state = kzalloc(sizeof(struct tda10021_state), GFP_KERNEL);
455 if (state == NULL) goto error;
457 /* setup the state */
458 state->config = config;
459 state->i2c = i2c;
460 state->pwm = pwm;
461 state->reg0 = tda10021_inittab[0];
464 id = tda10021_readreg(state, 0x1a);
472 state->config->demod_address, id);
475 memcpy(&state->frontend.ops, &tda10021_ops, sizeof(struct dvb_frontend_ops));
476 state->frontend.demodulator_priv = state;
477 return &state->frontend;
480 kfree(state);