Lines Matching refs:state
216 static void mxl5007t_set_mode_bits(struct mxl5007t_state *state, in mxl5007t_set_mode_bits() argument
222 set_reg_bits(state->tab_init, 0x06, 0x1f, 0x12); in mxl5007t_set_mode_bits()
225 set_reg_bits(state->tab_init, 0x06, 0x1f, 0x11); in mxl5007t_set_mode_bits()
228 set_reg_bits(state->tab_init, 0x06, 0x1f, 0x10); in mxl5007t_set_mode_bits()
231 set_reg_bits(state->tab_init_cable, 0x09, 0xff, 0xc1); in mxl5007t_set_mode_bits()
232 set_reg_bits(state->tab_init_cable, 0x0a, 0xff, in mxl5007t_set_mode_bits()
234 set_reg_bits(state->tab_init_cable, 0x0b, 0xff, 0x17); in mxl5007t_set_mode_bits()
242 static void mxl5007t_set_if_freq_bits(struct mxl5007t_state *state, in mxl5007t_set_if_freq_bits() argument
286 set_reg_bits(state->tab_init, 0x02, 0x0f, val); in mxl5007t_set_if_freq_bits()
289 set_reg_bits(state->tab_init, 0x02, 0x10, invert_if ? 0x10 : 0x00); in mxl5007t_set_if_freq_bits()
291 state->if_freq = if_freq; in mxl5007t_set_if_freq_bits()
296 static void mxl5007t_set_xtal_freq_bits(struct mxl5007t_state *state, in mxl5007t_set_xtal_freq_bits() argument
302 set_reg_bits(state->tab_init, 0x03, 0xf0, 0x00); in mxl5007t_set_xtal_freq_bits()
303 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x00); in mxl5007t_set_xtal_freq_bits()
306 set_reg_bits(state->tab_init, 0x03, 0xf0, 0x10); in mxl5007t_set_xtal_freq_bits()
307 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x01); in mxl5007t_set_xtal_freq_bits()
310 set_reg_bits(state->tab_init, 0x03, 0xf0, 0x20); in mxl5007t_set_xtal_freq_bits()
311 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x02); in mxl5007t_set_xtal_freq_bits()
314 set_reg_bits(state->tab_init, 0x03, 0xf0, 0x30); in mxl5007t_set_xtal_freq_bits()
315 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x03); in mxl5007t_set_xtal_freq_bits()
318 set_reg_bits(state->tab_init, 0x03, 0xf0, 0x40); in mxl5007t_set_xtal_freq_bits()
319 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x04); in mxl5007t_set_xtal_freq_bits()
322 set_reg_bits(state->tab_init, 0x03, 0xf0, 0x50); in mxl5007t_set_xtal_freq_bits()
323 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x05); in mxl5007t_set_xtal_freq_bits()
326 set_reg_bits(state->tab_init, 0x03, 0xf0, 0x60); in mxl5007t_set_xtal_freq_bits()
327 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x06); in mxl5007t_set_xtal_freq_bits()
330 set_reg_bits(state->tab_init, 0x03, 0xf0, 0x70); in mxl5007t_set_xtal_freq_bits()
331 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x07); in mxl5007t_set_xtal_freq_bits()
334 set_reg_bits(state->tab_init, 0x03, 0xf0, 0x80); in mxl5007t_set_xtal_freq_bits()
335 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x08); in mxl5007t_set_xtal_freq_bits()
338 set_reg_bits(state->tab_init, 0x03, 0xf0, 0x90); in mxl5007t_set_xtal_freq_bits()
339 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x09); in mxl5007t_set_xtal_freq_bits()
342 set_reg_bits(state->tab_init, 0x03, 0xf0, 0xa0); in mxl5007t_set_xtal_freq_bits()
343 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x0a); in mxl5007t_set_xtal_freq_bits()
346 set_reg_bits(state->tab_init, 0x03, 0xf0, 0xb0); in mxl5007t_set_xtal_freq_bits()
347 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x0b); in mxl5007t_set_xtal_freq_bits()
350 set_reg_bits(state->tab_init, 0x03, 0xf0, 0xc0); in mxl5007t_set_xtal_freq_bits()
351 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x0c); in mxl5007t_set_xtal_freq_bits()
354 set_reg_bits(state->tab_init, 0x03, 0xf0, 0xd0); in mxl5007t_set_xtal_freq_bits()
355 set_reg_bits(state->tab_init, 0x05, 0x0f, 0x0d); in mxl5007t_set_xtal_freq_bits()
365 static struct reg_pair_t *mxl5007t_calc_init_regs(struct mxl5007t_state *state, in mxl5007t_calc_init_regs() argument
368 struct mxl5007t_config *cfg = state->config; in mxl5007t_calc_init_regs()
370 memcpy(&state->tab_init, &init_tab, sizeof(init_tab)); in mxl5007t_calc_init_regs()
371 memcpy(&state->tab_init_cable, &init_tab_cable, sizeof(init_tab_cable)); in mxl5007t_calc_init_regs()
373 mxl5007t_set_mode_bits(state, mode, cfg->if_diff_out_level); in mxl5007t_calc_init_regs()
374 mxl5007t_set_if_freq_bits(state, cfg->if_freq_hz, cfg->invert_if); in mxl5007t_calc_init_regs()
375 mxl5007t_set_xtal_freq_bits(state, cfg->xtal_freq_hz); in mxl5007t_calc_init_regs()
377 set_reg_bits(state->tab_init, 0x03, 0x08, cfg->clk_out_enable << 3); in mxl5007t_calc_init_regs()
378 set_reg_bits(state->tab_init, 0x03, 0x07, cfg->clk_out_amp); in mxl5007t_calc_init_regs()
381 copy_reg_bits(state->tab_init, state->tab_init_cable); in mxl5007t_calc_init_regs()
382 return state->tab_init_cable; in mxl5007t_calc_init_regs()
384 return state->tab_init; in mxl5007t_calc_init_regs()
395 static void mxl5007t_set_bw_bits(struct mxl5007t_state *state, in mxl5007t_set_bw_bits() argument
415 set_reg_bits(state->tab_rftune, 0x0c, 0x3f, val); in mxl5007t_set_bw_bits()
421 reg_pair_t *mxl5007t_calc_rf_tune_regs(struct mxl5007t_state *state, in mxl5007t_calc_rf_tune_regs() argument
429 memcpy(&state->tab_rftune, ®_pair_rftune, sizeof(reg_pair_rftune)); in mxl5007t_calc_rf_tune_regs()
431 mxl5007t_set_bw_bits(state, bw); in mxl5007t_calc_rf_tune_regs()
452 set_reg_bits(state->tab_rftune, 0x0d, 0xff, (u8) dig_rf_freq); in mxl5007t_calc_rf_tune_regs()
453 set_reg_bits(state->tab_rftune, 0x0e, 0xff, (u8) (dig_rf_freq >> 8)); in mxl5007t_calc_rf_tune_regs()
456 set_reg_bits(state->tab_rftune, 0x80, 0x40, 0x40); in mxl5007t_calc_rf_tune_regs()
458 return state->tab_rftune; in mxl5007t_calc_rf_tune_regs()
463 static int mxl5007t_write_reg(struct mxl5007t_state *state, u8 reg, u8 val) in mxl5007t_write_reg() argument
466 struct i2c_msg msg = { .addr = state->i2c_props.addr, .flags = 0, in mxl5007t_write_reg()
470 ret = i2c_transfer(state->i2c_props.adap, &msg, 1); in mxl5007t_write_reg()
478 static int mxl5007t_write_regs(struct mxl5007t_state *state, in mxl5007t_write_regs() argument
485 ret = mxl5007t_write_reg(state, in mxl5007t_write_regs()
492 static int mxl5007t_read_reg(struct mxl5007t_state *state, u8 reg, u8 *val) in mxl5007t_read_reg() argument
496 { .addr = state->i2c_props.addr, .flags = 0, in mxl5007t_read_reg()
498 { .addr = state->i2c_props.addr, .flags = I2C_M_RD, in mxl5007t_read_reg()
503 ret = i2c_transfer(state->i2c_props.adap, msg, 2); in mxl5007t_read_reg()
511 static int mxl5007t_soft_reset(struct mxl5007t_state *state) in mxl5007t_soft_reset() argument
515 .addr = state->i2c_props.addr, .flags = 0, in mxl5007t_soft_reset()
518 int ret = i2c_transfer(state->i2c_props.adap, &msg, 1); in mxl5007t_soft_reset()
527 static int mxl5007t_tuner_init(struct mxl5007t_state *state, in mxl5007t_tuner_init() argument
534 init_regs = mxl5007t_calc_init_regs(state, mode); in mxl5007t_tuner_init()
536 ret = mxl5007t_write_regs(state, init_regs); in mxl5007t_tuner_init()
544 static int mxl5007t_tuner_rf_tune(struct mxl5007t_state *state, u32 rf_freq_hz, in mxl5007t_tuner_rf_tune() argument
551 rf_tune_regs = mxl5007t_calc_rf_tune_regs(state, rf_freq_hz, bw); in mxl5007t_tuner_rf_tune()
553 ret = mxl5007t_write_regs(state, rf_tune_regs); in mxl5007t_tuner_rf_tune()
563 static int mxl5007t_synth_lock_status(struct mxl5007t_state *state, in mxl5007t_synth_lock_status() argument
572 ret = mxl5007t_read_reg(state, 0xd8, &d); in mxl5007t_synth_lock_status()
589 struct mxl5007t_state *state = fe->tuner_priv; in mxl5007t_get_status() local
597 ret = mxl5007t_synth_lock_status(state, &rf_locked, &ref_locked); in mxl5007t_get_status()
618 struct mxl5007t_state *state = fe->tuner_priv; in mxl5007t_set_params() local
658 mutex_lock(&state->lock); in mxl5007t_set_params()
660 ret = mxl5007t_tuner_init(state, mode); in mxl5007t_set_params()
664 ret = mxl5007t_tuner_rf_tune(state, freq, bw); in mxl5007t_set_params()
668 state->frequency = freq; in mxl5007t_set_params()
669 state->bandwidth = c->bandwidth_hz; in mxl5007t_set_params()
671 mutex_unlock(&state->lock); in mxl5007t_set_params()
683 struct mxl5007t_state *state = fe->tuner_priv; in mxl5007t_init() local
690 ret = mxl5007t_write_reg(state, 0x01, 0x01); in mxl5007t_init()
701 struct mxl5007t_state *state = fe->tuner_priv; in mxl5007t_sleep() local
708 ret = mxl5007t_write_reg(state, 0x01, 0x00); in mxl5007t_sleep()
710 ret = mxl5007t_write_reg(state, 0x0f, 0x00); in mxl5007t_sleep()
723 struct mxl5007t_state *state = fe->tuner_priv; in mxl5007t_get_frequency() local
724 *frequency = state->frequency; in mxl5007t_get_frequency()
730 struct mxl5007t_state *state = fe->tuner_priv; in mxl5007t_get_bandwidth() local
731 *bandwidth = state->bandwidth; in mxl5007t_get_bandwidth()
737 struct mxl5007t_state *state = fe->tuner_priv; in mxl5007t_get_if_frequency() local
741 switch (state->if_freq) { in mxl5007t_get_if_frequency()
781 struct mxl5007t_state *state = fe->tuner_priv; in mxl5007t_release() local
785 if (state) in mxl5007t_release()
786 hybrid_tuner_release_state(state); in mxl5007t_release()
811 static int mxl5007t_get_chip_id(struct mxl5007t_state *state) in mxl5007t_get_chip_id() argument
817 ret = mxl5007t_read_reg(state, 0xd9, &id); in mxl5007t_get_chip_id()
848 state->chip_id = id; in mxl5007t_get_chip_id()
850 i2c_adapter_id(state->i2c_props.adap), in mxl5007t_get_chip_id()
851 state->i2c_props.addr); in mxl5007t_get_chip_id()
855 i2c_adapter_id(state->i2c_props.adap), in mxl5007t_get_chip_id()
856 state->i2c_props.addr); in mxl5007t_get_chip_id()
858 state->chip_id = MxL_UNKNOWN_ID; in mxl5007t_get_chip_id()
866 struct mxl5007t_state *state = NULL; in mxl5007t_attach() local
870 instance = hybrid_tuner_request_state(struct mxl5007t_state, state, in mxl5007t_attach()
878 state->config = cfg; in mxl5007t_attach()
880 mutex_init(&state->lock); in mxl5007t_attach()
885 ret = mxl5007t_get_chip_id(state); in mxl5007t_attach()
902 ret = mxl5007t_soft_reset(state); in mxl5007t_attach()
913 ret = mxl5007t_write_reg(state, 0x04, in mxl5007t_attach()
914 state->config->loop_thru_enable); in mxl5007t_attach()
922 fe->tuner_priv = state; in mxl5007t_attach()