Lines Matching refs:state
52 static int l64781_writereg (struct l64781_state* state, u8 reg, u8 data) in l64781_writereg() argument
56 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; in l64781_writereg()
58 if ((ret = i2c_transfer(state->i2c, &msg, 1)) != 1) in l64781_writereg()
65 static int l64781_readreg (struct l64781_state* state, u8 reg) in l64781_readreg() argument
70 …struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 … in l64781_readreg()
71 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; in l64781_readreg()
73 ret = i2c_transfer(state->i2c, msg, 2); in l64781_readreg()
80 static void apply_tps (struct l64781_state* state) in apply_tps() argument
82 l64781_writereg (state, 0x2a, 0x00); in apply_tps()
83 l64781_writereg (state, 0x2a, 0x01); in apply_tps()
90 l64781_writereg (state, 0x2a, 0x02); in apply_tps()
94 static void reset_afc (struct l64781_state* state) in reset_afc() argument
98 l64781_writereg (state, 0x07, 0x9e); /* stall AFC */ in reset_afc()
99 l64781_writereg (state, 0x08, 0); /* AFC INIT FREQ */ in reset_afc()
100 l64781_writereg (state, 0x09, 0); in reset_afc()
101 l64781_writereg (state, 0x0a, 0); in reset_afc()
102 l64781_writereg (state, 0x07, 0x8e); in reset_afc()
103 l64781_writereg (state, 0x0e, 0); /* AGC gain to zero in beginning */ in reset_afc()
104 l64781_writereg (state, 0x11, 0x80); /* stall TIM */ in reset_afc()
105 l64781_writereg (state, 0x10, 0); /* TIM_OFFSET_LSB */ in reset_afc()
106 l64781_writereg (state, 0x12, 0); in reset_afc()
107 l64781_writereg (state, 0x13, 0); in reset_afc()
108 l64781_writereg (state, 0x11, 0x00); in reset_afc()
111 static int reset_and_configure (struct l64781_state* state) in reset_and_configure() argument
117 return (i2c_transfer(state->i2c, &msg, 1) == 1) ? 0 : -ENODEV; in reset_and_configure()
123 struct l64781_state* state = fe->demodulator_priv; in apply_frontend_param() local
217 l64781_writereg (state, 0x04, val0x04); in apply_frontend_param()
218 l64781_writereg (state, 0x05, val0x05); in apply_frontend_param()
219 l64781_writereg (state, 0x06, val0x06); in apply_frontend_param()
221 reset_afc (state); in apply_frontend_param()
224 l64781_writereg (state, 0x15, in apply_frontend_param()
226 l64781_writereg (state, 0x16, init_freq & 0xff); in apply_frontend_param()
227 l64781_writereg (state, 0x17, (init_freq >> 8) & 0xff); in apply_frontend_param()
228 l64781_writereg (state, 0x18, (init_freq >> 16) & 0xff); in apply_frontend_param()
230 l64781_writereg (state, 0x1b, spi_bias & 0xff); in apply_frontend_param()
231 l64781_writereg (state, 0x1c, (spi_bias >> 8) & 0xff); in apply_frontend_param()
232 l64781_writereg (state, 0x1d, ((spi_bias >> 16) & 0x7f) | in apply_frontend_param()
235 l64781_writereg (state, 0x22, ddfs_offset_fixed & 0xff); in apply_frontend_param()
236 l64781_writereg (state, 0x23, (ddfs_offset_fixed >> 8) & 0x3f); in apply_frontend_param()
238 l64781_readreg (state, 0x00); /* clear interrupt registers... */ in apply_frontend_param()
239 l64781_readreg (state, 0x01); /* dto. */ in apply_frontend_param()
241 apply_tps (state); in apply_frontend_param()
249 struct l64781_state* state = fe->demodulator_priv; in get_frontend() local
253 tmp = l64781_readreg(state, 0x04); in get_frontend()
279 tmp = l64781_readreg(state, 0x05); in get_frontend()
319 tmp = l64781_readreg(state, 0x06); in get_frontend()
351 tmp = l64781_readreg (state, 0x1d); in get_frontend()
354 tmp = (int) (l64781_readreg (state, 0x08) | in get_frontend()
355 (l64781_readreg (state, 0x09) << 8) | in get_frontend()
356 (l64781_readreg (state, 0x0a) << 16)); in get_frontend()
364 struct l64781_state* state = fe->demodulator_priv; in l64781_read_status() local
365 int sync = l64781_readreg (state, 0x32); in l64781_read_status()
366 int gain = l64781_readreg (state, 0x0e); in l64781_read_status()
368 l64781_readreg (state, 0x00); /* clear interrupt registers... */ in l64781_read_status()
369 l64781_readreg (state, 0x01); /* dto. */ in l64781_read_status()
393 struct l64781_state* state = fe->demodulator_priv; in l64781_read_ber() local
397 *ber = l64781_readreg (state, 0x39) in l64781_read_ber()
398 | (l64781_readreg (state, 0x3a) << 8); in l64781_read_ber()
405 struct l64781_state* state = fe->demodulator_priv; in l64781_read_signal_strength() local
407 u8 gain = l64781_readreg (state, 0x0e); in l64781_read_signal_strength()
415 struct l64781_state* state = fe->demodulator_priv; in l64781_read_snr() local
417 u8 avg_quality = 0xff - l64781_readreg (state, 0x33); in l64781_read_snr()
425 struct l64781_state* state = fe->demodulator_priv; in l64781_read_ucblocks() local
427 *ucblocks = l64781_readreg (state, 0x37) in l64781_read_ucblocks()
428 | (l64781_readreg (state, 0x38) << 8); in l64781_read_ucblocks()
435 struct l64781_state* state = fe->demodulator_priv; in l64781_sleep() local
438 return l64781_writereg (state, 0x3e, 0x5a); in l64781_sleep()
443 struct l64781_state* state = fe->demodulator_priv; in l64781_init() local
445 reset_and_configure (state); in l64781_init()
448 l64781_writereg (state, 0x3e, 0xa5); in l64781_init()
451 l64781_writereg (state, 0x2a, 0x04); in l64781_init()
452 l64781_writereg (state, 0x2a, 0x00); in l64781_init()
456 l64781_writereg (state, 0x07, 0x8e); in l64781_init()
459 l64781_writereg (state, 0x0b, 0x81); in l64781_init()
462 l64781_writereg (state, 0x0c, 0x84); in l64781_init()
465 l64781_writereg (state, 0x0d, 0x8c); in l64781_init()
473 l64781_writereg (state, 0x1e, 0x09); in l64781_init()
476 if (state->first) { in l64781_init()
477 state->first = 0; in l64781_init()
495 struct l64781_state* state = fe->demodulator_priv; in l64781_release() local
496 kfree(state); in l64781_release()
504 struct l64781_state* state = NULL; in l64781_attach() local
512 state = kzalloc(sizeof(struct l64781_state), GFP_KERNEL); in l64781_attach()
513 if (state == NULL) goto error; in l64781_attach()
516 state->config = config; in l64781_attach()
517 state->i2c = i2c; in l64781_attach()
518 state->first = 1; in l64781_attach()
524 if (reset_and_configure(state) < 0) { in l64781_attach()
530 if (i2c_transfer(state->i2c, msg, 2) != 2) { in l64781_attach()
536 reg0x3e = l64781_readreg(state, 0x3e); in l64781_attach()
545 l64781_writereg (state, 0x3e, 0x5a); in l64781_attach()
548 if (l64781_readreg(state, 0x1a) != 0) { in l64781_attach()
554 l64781_writereg (state, 0x3e, 0xa5); in l64781_attach()
557 if (l64781_readreg(state, 0x1a) != 0xa1) { in l64781_attach()
563 memcpy(&state->frontend.ops, &l64781_ops, sizeof(struct dvb_frontend_ops)); in l64781_attach()
564 state->frontend.demodulator_priv = state; in l64781_attach()
565 return &state->frontend; in l64781_attach()
569 l64781_writereg (state, 0x3e, reg0x3e); /* restore reg 0x3e */ in l64781_attach()
570 kfree(state); in l64781_attach()