Lines Matching refs:state
72 static int _tda10021_writereg (struct tda10021_state* state, u8 reg, u8 data) in _tda10021_writereg() argument
75 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; in _tda10021_writereg()
78 ret = i2c_transfer (state->i2c, &msg, 1); in _tda10021_writereg()
82 state->frontend.dvb->num, __func__, reg, data, ret); in _tda10021_writereg()
88 static u8 tda10021_readreg (struct tda10021_state* state, u8 reg) in tda10021_readreg() argument
92 …struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 … in tda10021_readreg()
93 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; in tda10021_readreg()
96 ret = i2c_transfer (state->i2c, msg, 2); in tda10021_readreg()
105 static int lock_tuner(struct tda10021_state* state) in lock_tuner() argument
108 struct i2c_msg msg = {.addr=state->config->demod_address, .flags=0, .buf=buf, .len=2}; in lock_tuner()
110 if(i2c_transfer(state->i2c, &msg, 1) != 1) in lock_tuner()
119 static int unlock_tuner(struct tda10021_state* state) in unlock_tuner() argument
122 struct i2c_msg msg_post={.addr=state->config->demod_address, .flags=0, .buf=buf, .len=2}; in unlock_tuner()
124 if(i2c_transfer(state->i2c, &msg_post, 1) != 1) in unlock_tuner()
132 static int tda10021_setup_reg0 (struct tda10021_state* state, u8 reg0, in tda10021_setup_reg0() argument
135 reg0 |= state->reg0 & 0x63; in tda10021_setup_reg0()
137 if ((INVERSION_ON == inversion) ^ (state->config->invert == 0)) in tda10021_setup_reg0()
142 _tda10021_writereg (state, 0x00, reg0 & 0xfe); in tda10021_setup_reg0()
143 _tda10021_writereg (state, 0x00, reg0 | 0x01); in tda10021_setup_reg0()
145 state->reg0 = reg0; in tda10021_setup_reg0()
149 static int tda10021_set_symbolrate (struct tda10021_state* state, u32 symbolrate) in tda10021_set_symbolrate() argument
191 _tda10021_writereg (state, 0x03, NDEC); in tda10021_set_symbolrate()
192 _tda10021_writereg (state, 0x0a, BDR&0xff); in tda10021_set_symbolrate()
193 _tda10021_writereg (state, 0x0b, (BDR>> 8)&0xff); in tda10021_set_symbolrate()
194 _tda10021_writereg (state, 0x0c, (BDR>>16)&0x3f); in tda10021_set_symbolrate()
196 _tda10021_writereg (state, 0x0d, BDRI); in tda10021_set_symbolrate()
197 _tda10021_writereg (state, 0x0e, SFIL); in tda10021_set_symbolrate()
204 struct tda10021_state* state = fe->demodulator_priv; in tda10021_init() local
212 _tda10021_writereg (state, i, tda10021_inittab[i]); in tda10021_init()
214 _tda10021_writereg (state, 0x34, state->pwm); in tda10021_init()
223 _tda10021_writereg(state, 0x2a, tda10021_inittab[0x2a] & 0xef); in tda10021_init()
238 struct tda10021_state* state = fe->demodulator_priv; in tda10021_set_parameters() local
289 tda10021_set_symbolrate(state, c->symbol_rate); in tda10021_set_parameters()
290 _tda10021_writereg(state, 0x34, state->pwm); in tda10021_set_parameters()
292 _tda10021_writereg(state, 0x01, qam_params[qam].agcref); in tda10021_set_parameters()
293 _tda10021_writereg(state, 0x05, qam_params[qam].lthr); in tda10021_set_parameters()
294 _tda10021_writereg(state, 0x08, qam_params[qam].mseth); in tda10021_set_parameters()
295 _tda10021_writereg(state, 0x09, qam_params[qam].aref); in tda10021_set_parameters()
301 reg0x3d = tda10021_readreg (state, 0x3d); in tda10021_set_parameters()
303 _tda10021_writereg (state, 0x3d, 0x01 | reg0x3d); in tda10021_set_parameters()
305 _tda10021_writereg (state, 0x3d, 0xfe & reg0x3d); in tda10021_set_parameters()
306 tda10021_setup_reg0(state, qam_params[qam].conf, c->inversion); in tda10021_set_parameters()
313 struct tda10021_state* state = fe->demodulator_priv; in tda10021_read_status() local
322 sync = tda10021_readreg (state, 0x11); in tda10021_read_status()
338 struct tda10021_state* state = fe->demodulator_priv; in tda10021_read_ber() local
340 u32 _ber = tda10021_readreg(state, 0x14) | in tda10021_read_ber()
341 (tda10021_readreg(state, 0x15) << 8) | in tda10021_read_ber()
342 ((tda10021_readreg(state, 0x16) & 0x0f) << 16); in tda10021_read_ber()
343 _tda10021_writereg(state, 0x10, (tda10021_readreg(state, 0x10) & ~0xc0) in tda10021_read_ber()
352 struct tda10021_state* state = fe->demodulator_priv; in tda10021_read_signal_strength() local
354 u8 config = tda10021_readreg(state, 0x02); in tda10021_read_signal_strength()
355 u8 gain = tda10021_readreg(state, 0x17); in tda10021_read_signal_strength()
366 struct tda10021_state* state = fe->demodulator_priv; in tda10021_read_snr() local
368 u8 quality = ~tda10021_readreg(state, 0x18); in tda10021_read_snr()
376 struct tda10021_state* state = fe->demodulator_priv; in tda10021_read_ucblocks() local
378 *ucblocks = tda10021_readreg (state, 0x13) & 0x7f; in tda10021_read_ucblocks()
383 _tda10021_writereg (state, 0x10, tda10021_inittab[0x10] & 0xdf); in tda10021_read_ucblocks()
384 _tda10021_writereg (state, 0x10, tda10021_inittab[0x10]); in tda10021_read_ucblocks()
392 struct tda10021_state* state = fe->demodulator_priv; in tda10021_get_frontend() local
396 sync = tda10021_readreg(state, 0x11); in tda10021_get_frontend()
397 afc = tda10021_readreg(state, 0x19); in tda10021_get_frontend()
402 state->frontend.dvb->num, afc, in tda10021_get_frontend()
406 …p->inversion = ((state->reg0 & 0x20) == 0x20) ^ (state->config->invert != 0) ? INVERSION_ON : INVE… in tda10021_get_frontend()
407 p->modulation = ((state->reg0 >> 2) & 7) + QAM_16; in tda10021_get_frontend()
420 struct tda10021_state* state = fe->demodulator_priv; in tda10021_i2c_gate_ctrl() local
423 lock_tuner(state); in tda10021_i2c_gate_ctrl()
425 unlock_tuner(state); in tda10021_i2c_gate_ctrl()
432 struct tda10021_state* state = fe->demodulator_priv; in tda10021_sleep() local
434 _tda10021_writereg (state, 0x1b, 0x02); /* pdown ADC */ in tda10021_sleep()
435 _tda10021_writereg (state, 0x00, 0x80); /* standby */ in tda10021_sleep()
442 struct tda10021_state* state = fe->demodulator_priv; in tda10021_release() local
443 kfree(state); in tda10021_release()
452 struct tda10021_state* state = NULL; in tda10021_attach() local
456 state = kzalloc(sizeof(struct tda10021_state), GFP_KERNEL); in tda10021_attach()
457 if (state == NULL) goto error; in tda10021_attach()
460 state->config = config; in tda10021_attach()
461 state->i2c = i2c; in tda10021_attach()
462 state->pwm = pwm; in tda10021_attach()
463 state->reg0 = tda10021_inittab[0]; in tda10021_attach()
466 id = tda10021_readreg(state, 0x1a); in tda10021_attach()
474 state->config->demod_address, id); in tda10021_attach()
477 memcpy(&state->frontend.ops, &tda10021_ops, sizeof(struct dvb_frontend_ops)); in tda10021_attach()
478 state->frontend.demodulator_priv = state; in tda10021_attach()
479 return &state->frontend; in tda10021_attach()
482 kfree(state); in tda10021_attach()