Lines Matching refs:state

112 static void lgdt3306a_DumpAllRegs(struct lgdt3306a_state *state);
113 static void lgdt3306a_DumpRegs(struct lgdt3306a_state *state);
117 static int lgdt3306a_write_reg(struct lgdt3306a_state *state, u16 reg, u8 val) in lgdt3306a_write_reg() argument
122 .addr = state->cfg->i2c_addr, .flags = 0, in lgdt3306a_write_reg()
128 ret = i2c_transfer(state->i2c_adap, &msg, 1); in lgdt3306a_write_reg()
141 static int lgdt3306a_read_reg(struct lgdt3306a_state *state, u16 reg, u8 *val) in lgdt3306a_read_reg() argument
146 { .addr = state->cfg->i2c_addr, in lgdt3306a_read_reg()
148 { .addr = state->cfg->i2c_addr, in lgdt3306a_read_reg()
152 ret = i2c_transfer(state->i2c_adap, msg, 2); in lgdt3306a_read_reg()
156 state->cfg->i2c_addr, reg, ret); in lgdt3306a_read_reg()
167 #define read_reg(state, reg) \ argument
170 int ret = lgdt3306a_read_reg(state, reg, &__val); \
176 static int lgdt3306a_set_reg_bit(struct lgdt3306a_state *state, in lgdt3306a_set_reg_bit() argument
184 ret = lgdt3306a_read_reg(state, reg, &val); in lgdt3306a_set_reg_bit()
191 ret = lgdt3306a_write_reg(state, reg, val); in lgdt3306a_set_reg_bit()
199 static int lgdt3306a_soft_reset(struct lgdt3306a_state *state) in lgdt3306a_soft_reset() argument
205 ret = lgdt3306a_set_reg_bit(state, 0x0000, 7, 0); in lgdt3306a_soft_reset()
210 ret = lgdt3306a_set_reg_bit(state, 0x0000, 7, 1); in lgdt3306a_soft_reset()
217 static int lgdt3306a_mpeg_mode(struct lgdt3306a_state *state, in lgdt3306a_mpeg_mode() argument
225 ret = lgdt3306a_set_reg_bit(state, 0x0071, 7, in lgdt3306a_mpeg_mode()
234 ret = lgdt3306a_set_reg_bit(state, 0x0071, 6, 0); in lgdt3306a_mpeg_mode()
238 ret = lgdt3306a_read_reg(state, 0x0070, &val); in lgdt3306a_mpeg_mode()
247 ret = lgdt3306a_write_reg(state, 0x0070, val); in lgdt3306a_mpeg_mode()
254 static int lgdt3306a_mpeg_mode_polarity(struct lgdt3306a_state *state, in lgdt3306a_mpeg_mode_polarity() argument
263 ret = lgdt3306a_read_reg(state, 0x0070, &val); in lgdt3306a_mpeg_mode_polarity()
274 ret = lgdt3306a_write_reg(state, 0x0070, val); in lgdt3306a_mpeg_mode_polarity()
281 static int lgdt3306a_mpeg_tristate(struct lgdt3306a_state *state, in lgdt3306a_mpeg_tristate() argument
290 ret = lgdt3306a_read_reg(state, 0x0070, &val); in lgdt3306a_mpeg_tristate()
298 ret = lgdt3306a_write_reg(state, 0x0070, val); in lgdt3306a_mpeg_tristate()
303 ret = lgdt3306a_set_reg_bit(state, 0x0003, 6, 1); in lgdt3306a_mpeg_tristate()
309 ret = lgdt3306a_set_reg_bit(state, 0x0003, 6, 0); in lgdt3306a_mpeg_tristate()
313 ret = lgdt3306a_read_reg(state, 0x0070, &val); in lgdt3306a_mpeg_tristate()
318 ret = lgdt3306a_write_reg(state, 0x0070, val); in lgdt3306a_mpeg_tristate()
329 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_ts_bus_ctrl() local
333 return lgdt3306a_mpeg_tristate(state, acquire ? 0 : 1); in lgdt3306a_ts_bus_ctrl()
337 static int lgdt3306a_power(struct lgdt3306a_state *state, in lgdt3306a_power() argument
346 ret = lgdt3306a_set_reg_bit(state, 0x0000, 7, 0); in lgdt3306a_power()
351 ret = lgdt3306a_set_reg_bit(state, 0x0000, 0, 0); in lgdt3306a_power()
357 ret = lgdt3306a_set_reg_bit(state, 0x0000, 7, 1); in lgdt3306a_power()
362 ret = lgdt3306a_set_reg_bit(state, 0x0000, 0, 1); in lgdt3306a_power()
368 lgdt3306a_DumpAllRegs(state); in lgdt3306a_power()
375 static int lgdt3306a_set_vsb(struct lgdt3306a_state *state) in lgdt3306a_set_vsb() argument
383 ret = lgdt3306a_read_reg(state, 0x0002, &val); in lgdt3306a_set_vsb()
386 ret = lgdt3306a_write_reg(state, 0x0002, val); in lgdt3306a_set_vsb()
391 ret = lgdt3306a_write_reg(state, 0x0008, 0x80); in lgdt3306a_set_vsb()
396 ret = lgdt3306a_read_reg(state, 0x0009, &val); in lgdt3306a_set_vsb()
399 ret = lgdt3306a_write_reg(state, 0x0009, val); in lgdt3306a_set_vsb()
404 ret = lgdt3306a_read_reg(state, 0x0009, &val); in lgdt3306a_set_vsb()
406 ret = lgdt3306a_write_reg(state, 0x0009, val); in lgdt3306a_set_vsb()
411 ret = lgdt3306a_read_reg(state, 0x000d, &val); in lgdt3306a_set_vsb()
413 ret = lgdt3306a_write_reg(state, 0x000d, val); in lgdt3306a_set_vsb()
420 ret = lgdt3306a_write_reg(state, 0x0024, 0x00); in lgdt3306a_set_vsb()
425 ret = lgdt3306a_write_reg(state, 0x002e, 0x00); in lgdt3306a_set_vsb()
426 ret = lgdt3306a_write_reg(state, 0x002f, 0x00); in lgdt3306a_set_vsb()
427 ret = lgdt3306a_write_reg(state, 0x0030, 0x00); in lgdt3306a_set_vsb()
430 ret = lgdt3306a_write_reg(state, 0x002b, 0x00); in lgdt3306a_set_vsb()
431 ret = lgdt3306a_write_reg(state, 0x002c, 0x00); in lgdt3306a_set_vsb()
432 ret = lgdt3306a_write_reg(state, 0x002d, 0x00); in lgdt3306a_set_vsb()
435 ret = lgdt3306a_write_reg(state, 0x0028, 0x00); in lgdt3306a_set_vsb()
436 ret = lgdt3306a_write_reg(state, 0x0029, 0x00); in lgdt3306a_set_vsb()
437 ret = lgdt3306a_write_reg(state, 0x002a, 0x00); in lgdt3306a_set_vsb()
440 ret = lgdt3306a_write_reg(state, 0x0025, 0x00); in lgdt3306a_set_vsb()
441 ret = lgdt3306a_write_reg(state, 0x0026, 0x00); in lgdt3306a_set_vsb()
442 ret = lgdt3306a_write_reg(state, 0x0027, 0x00); in lgdt3306a_set_vsb()
448 ret = lgdt3306a_write_reg(state, 0x0024, 0x5A); in lgdt3306a_set_vsb()
453 ret = lgdt3306a_write_reg(state, 0x002e, 0x5A); in lgdt3306a_set_vsb()
454 ret = lgdt3306a_write_reg(state, 0x002f, 0x00); in lgdt3306a_set_vsb()
455 ret = lgdt3306a_write_reg(state, 0x0030, 0x00); in lgdt3306a_set_vsb()
458 ret = lgdt3306a_write_reg(state, 0x002b, 0x36); in lgdt3306a_set_vsb()
459 ret = lgdt3306a_write_reg(state, 0x002c, 0x00); in lgdt3306a_set_vsb()
460 ret = lgdt3306a_write_reg(state, 0x002d, 0x00); in lgdt3306a_set_vsb()
463 ret = lgdt3306a_write_reg(state, 0x0028, 0x2A); in lgdt3306a_set_vsb()
464 ret = lgdt3306a_write_reg(state, 0x0029, 0x00); in lgdt3306a_set_vsb()
465 ret = lgdt3306a_write_reg(state, 0x002a, 0x00); in lgdt3306a_set_vsb()
468 ret = lgdt3306a_write_reg(state, 0x0025, 0x06); in lgdt3306a_set_vsb()
469 ret = lgdt3306a_write_reg(state, 0x0026, 0x00); in lgdt3306a_set_vsb()
470 ret = lgdt3306a_write_reg(state, 0x0027, 0x00); in lgdt3306a_set_vsb()
473 ret = lgdt3306a_read_reg(state, 0x001e, &val); in lgdt3306a_set_vsb()
476 ret = lgdt3306a_write_reg(state, 0x001e, val); in lgdt3306a_set_vsb()
478 ret = lgdt3306a_write_reg(state, 0x0022, 0x08); in lgdt3306a_set_vsb()
480 ret = lgdt3306a_write_reg(state, 0x0023, 0xFF); in lgdt3306a_set_vsb()
482 ret = lgdt3306a_read_reg(state, 0x211f, &val); in lgdt3306a_set_vsb()
484 ret = lgdt3306a_write_reg(state, 0x211f, val); in lgdt3306a_set_vsb()
486 ret = lgdt3306a_write_reg(state, 0x2173, 0x01); in lgdt3306a_set_vsb()
488 ret = lgdt3306a_read_reg(state, 0x1061, &val); in lgdt3306a_set_vsb()
491 ret = lgdt3306a_write_reg(state, 0x1061, val); in lgdt3306a_set_vsb()
493 ret = lgdt3306a_read_reg(state, 0x103d, &val); in lgdt3306a_set_vsb()
495 ret = lgdt3306a_write_reg(state, 0x103d, val); in lgdt3306a_set_vsb()
497 ret = lgdt3306a_write_reg(state, 0x2122, 0x40); in lgdt3306a_set_vsb()
499 ret = lgdt3306a_read_reg(state, 0x2141, &val); in lgdt3306a_set_vsb()
501 ret = lgdt3306a_write_reg(state, 0x2141, val); in lgdt3306a_set_vsb()
503 ret = lgdt3306a_read_reg(state, 0x2135, &val); in lgdt3306a_set_vsb()
506 ret = lgdt3306a_write_reg(state, 0x2135, val); in lgdt3306a_set_vsb()
508 ret = lgdt3306a_read_reg(state, 0x0003, &val); in lgdt3306a_set_vsb()
510 ret = lgdt3306a_write_reg(state, 0x0003, val); in lgdt3306a_set_vsb()
512 ret = lgdt3306a_read_reg(state, 0x001c, &val); in lgdt3306a_set_vsb()
514 ret = lgdt3306a_write_reg(state, 0x001c, val); in lgdt3306a_set_vsb()
517 ret = lgdt3306a_read_reg(state, 0x2179, &val); in lgdt3306a_set_vsb()
519 ret = lgdt3306a_write_reg(state, 0x2179, val); in lgdt3306a_set_vsb()
521 ret = lgdt3306a_read_reg(state, 0x217a, &val); in lgdt3306a_set_vsb()
523 ret = lgdt3306a_write_reg(state, 0x217a, val); in lgdt3306a_set_vsb()
526 ret = lgdt3306a_soft_reset(state); in lgdt3306a_set_vsb()
535 static int lgdt3306a_set_qam(struct lgdt3306a_state *state, int modulation) in lgdt3306a_set_qam() argument
543 ret = lgdt3306a_write_reg(state, 0x0008, 0x08); in lgdt3306a_set_qam()
548 ret = lgdt3306a_read_reg(state, 0x0002, &val); in lgdt3306a_set_qam()
551 ret = lgdt3306a_write_reg(state, 0x0002, val); in lgdt3306a_set_qam()
556 ret = lgdt3306a_read_reg(state, 0x0009, &val); in lgdt3306a_set_qam()
558 ret = lgdt3306a_write_reg(state, 0x0009, val); in lgdt3306a_set_qam()
563 ret = lgdt3306a_read_reg(state, 0x0009, &val); in lgdt3306a_set_qam()
566 ret = lgdt3306a_write_reg(state, 0x0009, val); in lgdt3306a_set_qam()
571 ret = lgdt3306a_read_reg(state, 0x101a, &val); in lgdt3306a_set_qam()
578 ret = lgdt3306a_write_reg(state, 0x101a, val); in lgdt3306a_set_qam()
583 ret = lgdt3306a_read_reg(state, 0x000d, &val); in lgdt3306a_set_qam()
586 ret = lgdt3306a_write_reg(state, 0x000d, val); in lgdt3306a_set_qam()
591 ret = lgdt3306a_read_reg(state, 0x0024, &val); in lgdt3306a_set_qam()
593 ret = lgdt3306a_write_reg(state, 0x0024, val); in lgdt3306a_set_qam()
598 ret = lgdt3306a_soft_reset(state); in lgdt3306a_set_qam()
607 static int lgdt3306a_set_modulation(struct lgdt3306a_state *state, in lgdt3306a_set_modulation() argument
616 ret = lgdt3306a_set_vsb(state); in lgdt3306a_set_modulation()
619 ret = lgdt3306a_set_qam(state, QAM_64); in lgdt3306a_set_modulation()
622 ret = lgdt3306a_set_qam(state, QAM_256); in lgdt3306a_set_modulation()
630 state->current_modulation = p->modulation; in lgdt3306a_set_modulation()
638 static int lgdt3306a_agc_setup(struct lgdt3306a_state *state, in lgdt3306a_agc_setup() argument
658 static int lgdt3306a_set_inversion(struct lgdt3306a_state *state, in lgdt3306a_set_inversion() argument
665 ret = lgdt3306a_set_reg_bit(state, 0x0002, 2, inversion ? 1 : 0); in lgdt3306a_set_inversion()
669 static int lgdt3306a_set_inversion_auto(struct lgdt3306a_state *state, in lgdt3306a_set_inversion_auto() argument
677 ret = lgdt3306a_set_reg_bit(state, 0x0002, 3, enabled); in lgdt3306a_set_inversion_auto()
681 static int lgdt3306a_spectral_inversion(struct lgdt3306a_state *state, in lgdt3306a_spectral_inversion() argument
694 ret = lgdt3306a_set_inversion(state, inversion); in lgdt3306a_spectral_inversion()
699 ret = lgdt3306a_set_inversion_auto(state, 0); in lgdt3306a_spectral_inversion()
704 ret = lgdt3306a_set_inversion_auto(state, 1); in lgdt3306a_spectral_inversion()
713 static int lgdt3306a_set_if(struct lgdt3306a_state *state, in lgdt3306a_set_if() argument
722 if_freq_khz = state->cfg->vsb_if_khz; in lgdt3306a_set_if()
726 if_freq_khz = state->cfg->qam_if_khz; in lgdt3306a_set_if()
758 ret = lgdt3306a_write_reg(state, 0x0010, nco1); in lgdt3306a_set_if()
761 ret = lgdt3306a_write_reg(state, 0x0011, nco2); in lgdt3306a_set_if()
774 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_i2c_gate_ctrl() local
776 if (state->cfg->deny_i2c_rptr) { in lgdt3306a_i2c_gate_ctrl()
777 dbg_info("deny_i2c_rptr=%d\n", state->cfg->deny_i2c_rptr); in lgdt3306a_i2c_gate_ctrl()
783 return lgdt3306a_set_reg_bit(state, 0x0002, 7, enable ? 0 : 1); in lgdt3306a_i2c_gate_ctrl()
786 static int lgdt3306a_sleep(struct lgdt3306a_state *state) in lgdt3306a_sleep() argument
791 state->current_frequency = -1; /* force re-tune, when we wake */ in lgdt3306a_sleep()
793 ret = lgdt3306a_mpeg_tristate(state, 1); /* disable data bus */ in lgdt3306a_sleep()
797 ret = lgdt3306a_power(state, 0); /* power down */ in lgdt3306a_sleep()
806 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_fe_sleep() local
808 return lgdt3306a_sleep(state); in lgdt3306a_fe_sleep()
813 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_init() local
820 ret = lgdt3306a_set_reg_bit(state, 0x0001, 0, 1); /* SIMFASTENB=0x01 */ in lgdt3306a_init()
825 ret = lgdt3306a_set_inversion_auto(state, 0); in lgdt3306a_init()
830 ret = lgdt3306a_set_inversion(state, 1); in lgdt3306a_init()
837 ret = lgdt3306a_set_reg_bit(state, 0x0004, 7, 1); in lgdt3306a_init()
844 ret = lgdt3306a_set_reg_bit(state, 0x0004, 2, 0); in lgdt3306a_init()
851 ret = lgdt3306a_set_reg_bit(state, 0x0004, 3, 0); in lgdt3306a_init()
858 ret = lgdt3306a_set_reg_bit(state, 0x0005, 6, 0); in lgdt3306a_init()
862 if (state->cfg->xtalMHz == 24) { /* 24MHz */ in lgdt3306a_init()
864 ret = lgdt3306a_read_reg(state, 0x0005, &val); in lgdt3306a_init()
869 ret = lgdt3306a_write_reg(state, 0x0005, val); in lgdt3306a_init()
872 ret = lgdt3306a_write_reg(state, 0x0006, 0x64); in lgdt3306a_init()
877 ret = lgdt3306a_read_reg(state, 0x000d, &val); in lgdt3306a_init()
882 ret = lgdt3306a_write_reg(state, 0x000d, val); in lgdt3306a_init()
886 } else if (state->cfg->xtalMHz == 25) { /* 25MHz */ in lgdt3306a_init()
888 ret = lgdt3306a_read_reg(state, 0x0005, &val); in lgdt3306a_init()
893 ret = lgdt3306a_write_reg(state, 0x0005, val); in lgdt3306a_init()
896 ret = lgdt3306a_write_reg(state, 0x0006, 0x64); in lgdt3306a_init()
901 ret = lgdt3306a_read_reg(state, 0x000d, &val); in lgdt3306a_init()
906 ret = lgdt3306a_write_reg(state, 0x000d, val); in lgdt3306a_init()
910 pr_err("Bad xtalMHz=%d\n", state->cfg->xtalMHz); in lgdt3306a_init()
913 ret = lgdt3306a_write_reg(state, 0x000e, 0x00); in lgdt3306a_init()
914 ret = lgdt3306a_write_reg(state, 0x000f, 0x00); in lgdt3306a_init()
918 ret = lgdt3306a_write_reg(state, 0x0010, 0x34); /* 3.25MHz */ in lgdt3306a_init()
919 ret = lgdt3306a_write_reg(state, 0x0011, 0x00); in lgdt3306a_init()
922 ret = lgdt3306a_write_reg(state, 0x0014, 0); /* gain error=0 */ in lgdt3306a_init()
925 ret = lgdt3306a_read_reg(state, 0x103c, &val); in lgdt3306a_init()
928 ret = lgdt3306a_write_reg(state, 0x103c, val); in lgdt3306a_init()
931 ret = lgdt3306a_read_reg(state, 0x103d, &val); in lgdt3306a_init()
934 ret = lgdt3306a_write_reg(state, 0x103d, val); in lgdt3306a_init()
937 ret = lgdt3306a_read_reg(state, 0x1036, &val); in lgdt3306a_init()
940 ret = lgdt3306a_write_reg(state, 0x1036, val); in lgdt3306a_init()
943 ret = lgdt3306a_read_reg(state, 0x211f, &val); in lgdt3306a_init()
945 ret = lgdt3306a_write_reg(state, 0x211f, val); in lgdt3306a_init()
948 ret = lgdt3306a_read_reg(state, 0x2849, &val); in lgdt3306a_init()
950 ret = lgdt3306a_write_reg(state, 0x2849, val); in lgdt3306a_init()
953 ret = lgdt3306a_set_vsb(state); in lgdt3306a_init()
956 ret = lgdt3306a_mpeg_mode(state, state->cfg->mpeg_mode); in lgdt3306a_init()
959 ret = lgdt3306a_mpeg_tristate(state, 1); in lgdt3306a_init()
962 ret = lgdt3306a_sleep(state); in lgdt3306a_init()
972 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_set_parameters() local
977 if (state->current_frequency == p->frequency && in lgdt3306a_set_parameters()
978 state->current_modulation == p->modulation) { in lgdt3306a_set_parameters()
982 state->current_frequency = -1; in lgdt3306a_set_parameters()
983 state->current_modulation = -1; in lgdt3306a_set_parameters()
985 ret = lgdt3306a_power(state, 1); /* power up */ in lgdt3306a_set_parameters()
996 state->current_frequency = p->frequency; in lgdt3306a_set_parameters()
1000 ret = lgdt3306a_set_modulation(state, p); in lgdt3306a_set_parameters()
1004 ret = lgdt3306a_agc_setup(state, p); in lgdt3306a_set_parameters()
1008 ret = lgdt3306a_set_if(state, p); in lgdt3306a_set_parameters()
1012 ret = lgdt3306a_spectral_inversion(state, p, in lgdt3306a_set_parameters()
1013 state->cfg->spectral_inversion ? 1 : 0); in lgdt3306a_set_parameters()
1017 ret = lgdt3306a_mpeg_mode(state, state->cfg->mpeg_mode); in lgdt3306a_set_parameters()
1021 ret = lgdt3306a_mpeg_mode_polarity(state, in lgdt3306a_set_parameters()
1022 state->cfg->tpclk_edge, in lgdt3306a_set_parameters()
1023 state->cfg->tpvalid_polarity); in lgdt3306a_set_parameters()
1027 ret = lgdt3306a_mpeg_tristate(state, 0); /* enable data bus */ in lgdt3306a_set_parameters()
1031 ret = lgdt3306a_soft_reset(state); in lgdt3306a_set_parameters()
1036 lgdt3306a_DumpAllRegs(state); in lgdt3306a_set_parameters()
1038 state->current_frequency = p->frequency; in lgdt3306a_set_parameters()
1045 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_get_frontend() local
1049 state->current_frequency, state->current_modulation); in lgdt3306a_get_frontend()
1051 p->modulation = state->current_modulation; in lgdt3306a_get_frontend()
1052 p->frequency = state->current_frequency; in lgdt3306a_get_frontend()
1066 static int lgdt3306a_monitor_vsb(struct lgdt3306a_state *state) in lgdt3306a_monitor_vsb() argument
1073 ret = lgdt3306a_read_reg(state, 0x21a1, &val); in lgdt3306a_monitor_vsb()
1078 ret = lgdt3306a_read_reg(state, 0x2185, &maxPowerMan); in lgdt3306a_monitor_vsb()
1082 ret = lgdt3306a_read_reg(state, 0x2191, &val); in lgdt3306a_monitor_vsb()
1087 ret = lgdt3306a_read_reg(state, 0x2180, &val); in lgdt3306a_monitor_vsb()
1092 ret = lgdt3306a_read_reg(state, 0x2181, &val); in lgdt3306a_monitor_vsb()
1101 ret = lgdt3306a_read_reg(state, 0x1061, &val); in lgdt3306a_monitor_vsb()
1113 ret = lgdt3306a_write_reg(state, 0x1061, val); in lgdt3306a_monitor_vsb()
1118 ret = lgdt3306a_read_reg(state, 0x0024, &val); in lgdt3306a_monitor_vsb()
1125 ret = lgdt3306a_write_reg(state, 0x0024, val); in lgdt3306a_monitor_vsb()
1130 ret = lgdt3306a_read_reg(state, 0x103d, &val); in lgdt3306a_monitor_vsb()
1135 ret = lgdt3306a_write_reg(state, 0x103d, val); in lgdt3306a_monitor_vsb()
1141 lgdt3306a_check_oper_mode(struct lgdt3306a_state *state) in lgdt3306a_check_oper_mode() argument
1146 ret = lgdt3306a_read_reg(state, 0x0081, &val); in lgdt3306a_check_oper_mode()
1155 ret = lgdt3306a_read_reg(state, 0x00a6, &val); in lgdt3306a_check_oper_mode()
1172 lgdt3306a_check_lock_status(struct lgdt3306a_state *state, in lgdt3306a_check_lock_status() argument
1185 ret = lgdt3306a_read_reg(state, 0x00a6, &val); in lgdt3306a_check_lock_status()
1199 ret = lgdt3306a_read_reg(state, 0x0080, &val); in lgdt3306a_check_lock_status()
1213 modeOper = lgdt3306a_check_oper_mode(state); in lgdt3306a_check_lock_status()
1215 ret = lgdt3306a_read_reg(state, 0x1094, &val); in lgdt3306a_check_lock_status()
1231 modeOper = lgdt3306a_check_oper_mode(state); in lgdt3306a_check_lock_status()
1233 ret = lgdt3306a_read_reg(state, 0x0080, &val); in lgdt3306a_check_lock_status()
1258 lgdt3306a_check_neverlock_status(struct lgdt3306a_state *state) in lgdt3306a_check_neverlock_status() argument
1264 ret = lgdt3306a_read_reg(state, 0x0080, &val); in lgdt3306a_check_neverlock_status()
1274 static int lgdt3306a_pre_monitoring(struct lgdt3306a_state *state) in lgdt3306a_pre_monitoring() argument
1281 ret = lgdt3306a_read_reg(state, 0x21bc, &currChDiffACQ); in lgdt3306a_pre_monitoring()
1286 ret = lgdt3306a_read_reg(state, 0x21a1, &val); in lgdt3306a_pre_monitoring()
1292 ret = lgdt3306a_read_reg(state, 0x2199, &val); in lgdt3306a_pre_monitoring()
1297 ret = lgdt3306a_read_reg(state, 0x0090, &val); in lgdt3306a_pre_monitoring()
1310 ret = lgdt3306a_read_reg(state, 0x2135, &val); in lgdt3306a_pre_monitoring()
1315 ret = lgdt3306a_write_reg(state, 0x2135, val); in lgdt3306a_pre_monitoring()
1319 ret = lgdt3306a_read_reg(state, 0x2141, &val); in lgdt3306a_pre_monitoring()
1324 ret = lgdt3306a_write_reg(state, 0x2141, val); in lgdt3306a_pre_monitoring()
1328 ret = lgdt3306a_write_reg(state, 0x2122, 0x70); in lgdt3306a_pre_monitoring()
1332 ret = lgdt3306a_read_reg(state, 0x2135, &val); in lgdt3306a_pre_monitoring()
1337 ret = lgdt3306a_write_reg(state, 0x2135, val); in lgdt3306a_pre_monitoring()
1341 ret = lgdt3306a_read_reg(state, 0x2141, &val); in lgdt3306a_pre_monitoring()
1346 ret = lgdt3306a_write_reg(state, 0x2141, val); in lgdt3306a_pre_monitoring()
1350 ret = lgdt3306a_write_reg(state, 0x2122, 0x40); in lgdt3306a_pre_monitoring()
1358 lgdt3306a_sync_lock_poll(struct lgdt3306a_state *state) in lgdt3306a_sync_lock_poll() argument
1366 syncLockStatus = lgdt3306a_check_lock_status(state, in lgdt3306a_sync_lock_poll()
1379 lgdt3306a_fec_lock_poll(struct lgdt3306a_state *state) in lgdt3306a_fec_lock_poll() argument
1387 FECLockStatus = lgdt3306a_check_lock_status(state, in lgdt3306a_fec_lock_poll()
1400 lgdt3306a_neverlock_poll(struct lgdt3306a_state *state) in lgdt3306a_neverlock_poll() argument
1408 NLLockStatus = lgdt3306a_check_neverlock_status(state); in lgdt3306a_neverlock_poll()
1419 static u8 lgdt3306a_get_packet_error(struct lgdt3306a_state *state) in lgdt3306a_get_packet_error() argument
1424 ret = lgdt3306a_read_reg(state, 0x00fa, &val); in lgdt3306a_get_packet_error()
1483 static u32 lgdt3306a_calculate_snr_x100(struct lgdt3306a_state *state) in lgdt3306a_calculate_snr_x100() argument
1489 mse = (read_reg(state, 0x00ec) << 8) | in lgdt3306a_calculate_snr_x100()
1490 (read_reg(state, 0x00ed)); in lgdt3306a_calculate_snr_x100()
1491 pwr = (read_reg(state, 0x00e8) << 8) | in lgdt3306a_calculate_snr_x100()
1492 (read_reg(state, 0x00e9)); in lgdt3306a_calculate_snr_x100()
1504 lgdt3306a_vsb_lock_poll(struct lgdt3306a_state *state) in lgdt3306a_vsb_lock_poll() argument
1512 if (lgdt3306a_sync_lock_poll(state) == LG3306_UNLOCK) { in lgdt3306a_vsb_lock_poll()
1518 ret = lgdt3306a_pre_monitoring(state); in lgdt3306a_vsb_lock_poll()
1522 packet_error = lgdt3306a_get_packet_error(state); in lgdt3306a_vsb_lock_poll()
1523 snr = lgdt3306a_calculate_snr_x100(state); in lgdt3306a_vsb_lock_poll()
1535 lgdt3306a_qam_lock_poll(struct lgdt3306a_state *state) in lgdt3306a_qam_lock_poll() argument
1542 if (lgdt3306a_fec_lock_poll(state) == LG3306_UNLOCK) { in lgdt3306a_qam_lock_poll()
1549 packet_error = lgdt3306a_get_packet_error(state); in lgdt3306a_qam_lock_poll()
1550 snr = lgdt3306a_calculate_snr_x100(state); in lgdt3306a_qam_lock_poll()
1563 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_read_status() local
1576 if (lgdt3306a_neverlock_poll(state) == LG3306_NL_LOCK) { in lgdt3306a_read_status()
1580 switch (state->current_modulation) { in lgdt3306a_read_status()
1583 if (lgdt3306a_qam_lock_poll(state) == LG3306_LOCK) { in lgdt3306a_read_status()
1591 if (lgdt3306a_vsb_lock_poll(state) == LG3306_LOCK) { in lgdt3306a_read_status()
1597 ret = lgdt3306a_monitor_vsb(state); in lgdt3306a_read_status()
1610 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_read_snr() local
1612 state->snr = lgdt3306a_calculate_snr_x100(state); in lgdt3306a_read_snr()
1614 *snr = state->snr/10; in lgdt3306a_read_snr()
1625 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_read_signal_strength() local
1633 switch (state->current_modulation) { in lgdt3306a_read_signal_strength()
1651 if (state->snr <= (ref_snr - 100)) in lgdt3306a_read_signal_strength()
1653 else if (state->snr <= ref_snr) in lgdt3306a_read_signal_strength()
1656 str = state->snr - ref_snr; in lgdt3306a_read_signal_strength()
1674 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_read_ber() local
1681 tmp = read_reg(state, 0x00fc); /* NBERVALUE[24-31] */ in lgdt3306a_read_ber()
1682 tmp = (tmp << 8) | read_reg(state, 0x00fd); /* NBERVALUE[16-23] */ in lgdt3306a_read_ber()
1683 tmp = (tmp << 8) | read_reg(state, 0x00fe); /* NBERVALUE[8-15] */ in lgdt3306a_read_ber()
1684 tmp = (tmp << 8) | read_reg(state, 0x00ff); /* NBERVALUE[0-7] */ in lgdt3306a_read_ber()
1693 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_read_ucblocks() local
1699 *ucblocks = read_reg(state, 0x00f4); /* TPIFTPERRCNT[0-7] */ in lgdt3306a_read_ucblocks()
1711 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_tune() local
1716 state->current_frequency = -1; /* force re-tune */ in lgdt3306a_tune()
1771 struct lgdt3306a_state *state = fe->demodulator_priv; in lgdt3306a_release() local
1774 kfree(state); in lgdt3306a_release()
1782 struct lgdt3306a_state *state = NULL; in lgdt3306a_attach() local
1790 state = kzalloc(sizeof(struct lgdt3306a_state), GFP_KERNEL); in lgdt3306a_attach()
1791 if (state == NULL) in lgdt3306a_attach()
1794 state->cfg = config; in lgdt3306a_attach()
1795 state->i2c_adap = i2c_adap; in lgdt3306a_attach()
1797 memcpy(&state->frontend.ops, &lgdt3306a_ops, in lgdt3306a_attach()
1799 state->frontend.demodulator_priv = state; in lgdt3306a_attach()
1804 ret = lgdt3306a_read_reg(state, 0x0000, &val); in lgdt3306a_attach()
1814 ret = lgdt3306a_read_reg(state, 0x0001, &val); in lgdt3306a_attach()
1824 ret = lgdt3306a_read_reg(state, 0x0002, &val); in lgdt3306a_attach()
1835 state->current_frequency = -1; in lgdt3306a_attach()
1836 state->current_modulation = -1; in lgdt3306a_attach()
1838 lgdt3306a_sleep(state); in lgdt3306a_attach()
1840 return &state->frontend; in lgdt3306a_attach()
1844 kfree(state); in lgdt3306a_attach()
2083 static void lgdt3306a_DumpAllRegs(struct lgdt3306a_state *state) in lgdt3306a_DumpAllRegs() argument
2086 lgdt3306a_DumpRegs(state); in lgdt3306a_DumpAllRegs()
2089 static void lgdt3306a_DumpRegs(struct lgdt3306a_state *state) in lgdt3306a_DumpRegs() argument
2101 lgdt3306a_read_reg(state, regtab[i], &regval1[i]); in lgdt3306a_DumpRegs()