Lines Matching refs:state
240 static int ds3000_writereg(struct ds3000_state *state, int reg, int data) in ds3000_writereg() argument
243 struct i2c_msg msg = { .addr = state->config->demod_address, in ds3000_writereg()
249 err = i2c_transfer(state->i2c, &msg, 1); in ds3000_writereg()
261 struct ds3000_state *state = fe->demodulator_priv; in ds3000_i2c_gate_ctrl() local
264 ds3000_writereg(state, 0x03, 0x12); in ds3000_i2c_gate_ctrl()
266 ds3000_writereg(state, 0x03, 0x02); in ds3000_i2c_gate_ctrl()
272 static int ds3000_writeFW(struct ds3000_state *state, int reg, in ds3000_writeFW() argument
287 msg.addr = state->config->demod_address; in ds3000_writeFW()
297 ret = i2c_transfer(state->i2c, &msg, 1); in ds3000_writeFW()
313 static int ds3000_readreg(struct ds3000_state *state, u8 reg) in ds3000_readreg() argument
320 .addr = state->config->demod_address, in ds3000_readreg()
325 .addr = state->config->demod_address, in ds3000_readreg()
332 ret = i2c_transfer(state->i2c, msg, 2); in ds3000_readreg()
349 struct ds3000_state *state = fe->demodulator_priv; in ds3000_firmware_ondemand() local
355 ret = ds3000_readreg(state, 0xb2); in ds3000_firmware_ondemand()
364 state->i2c->dev.parent); in ds3000_firmware_ondemand()
387 struct ds3000_state *state = fe->demodulator_priv; in ds3000_load_firmware() local
399 ds3000_writereg(state, 0xb2, 0x01); in ds3000_load_firmware()
401 ret = ds3000_writeFW(state, 0xb0, fw->data, fw->size); in ds3000_load_firmware()
402 ds3000_writereg(state, 0xb2, 0x00); in ds3000_load_firmware()
410 struct ds3000_state *state = fe->demodulator_priv; in ds3000_set_voltage() local
415 data = ds3000_readreg(state, 0xa2); in ds3000_set_voltage()
430 ds3000_writereg(state, 0xa2, data); in ds3000_set_voltage()
437 struct ds3000_state *state = fe->demodulator_priv; in ds3000_read_status() local
445 lock = ds3000_readreg(state, 0xd1); in ds3000_read_status()
453 lock = ds3000_readreg(state, 0x0d); in ds3000_read_status()
464 if (state->config->set_lock_led) in ds3000_read_status()
465 state->config->set_lock_led(fe, *status == 0 ? 0 : 1); in ds3000_read_status()
475 struct ds3000_state *state = fe->demodulator_priv; in ds3000_read_ber() local
486 ds3000_writereg(state, 0xf9, 0x04); in ds3000_read_ber()
488 data = ds3000_readreg(state, 0xf8); in ds3000_read_ber()
494 *ber = (ds3000_readreg(state, 0xf7) << 8) | in ds3000_read_ber()
495 ds3000_readreg(state, 0xf6); in ds3000_read_ber()
500 ds3000_writereg(state, 0xf8, data); in ds3000_read_ber()
501 ds3000_writereg(state, 0xf8, data); in ds3000_read_ber()
509 lpdc_frames = (ds3000_readreg(state, 0xd7) << 16) | in ds3000_read_ber()
510 (ds3000_readreg(state, 0xd6) << 8) | in ds3000_read_ber()
511 ds3000_readreg(state, 0xd5); in ds3000_read_ber()
513 ber_reading = (ds3000_readreg(state, 0xf8) << 8) | in ds3000_read_ber()
514 ds3000_readreg(state, 0xf7); in ds3000_read_ber()
517 ds3000_writereg(state, 0xd1, 0x01); in ds3000_read_ber()
519 ds3000_writereg(state, 0xf9, 0x01); in ds3000_read_ber()
521 ds3000_writereg(state, 0xf9, 0x00); in ds3000_read_ber()
523 ds3000_writereg(state, 0xd1, 0x00); in ds3000_read_ber()
549 struct ds3000_state *state = fe->demodulator_priv; in ds3000_read_snr() local
577 snr_reading = ds3000_readreg(state, 0xff); in ds3000_read_snr()
593 dvbs2_noise_reading = (ds3000_readreg(state, 0x8c) & 0x3f) + in ds3000_read_snr()
594 (ds3000_readreg(state, 0x8d) << 4); in ds3000_read_snr()
595 dvbs2_signal_reading = ds3000_readreg(state, 0x8e); in ds3000_read_snr()
635 struct ds3000_state *state = fe->demodulator_priv; in ds3000_read_ucblocks() local
644 *ucblocks = (ds3000_readreg(state, 0xf5) << 8) | in ds3000_read_ucblocks()
645 ds3000_readreg(state, 0xf4); in ds3000_read_ucblocks()
646 data = ds3000_readreg(state, 0xf8); in ds3000_read_ucblocks()
649 ds3000_writereg(state, 0xf8, data); in ds3000_read_ucblocks()
652 ds3000_writereg(state, 0xf8, data); in ds3000_read_ucblocks()
655 _ucblocks = (ds3000_readreg(state, 0xe2) << 8) | in ds3000_read_ucblocks()
656 ds3000_readreg(state, 0xe1); in ds3000_read_ucblocks()
657 if (_ucblocks > state->prevUCBS2) in ds3000_read_ucblocks()
658 *ucblocks = _ucblocks - state->prevUCBS2; in ds3000_read_ucblocks()
660 *ucblocks = state->prevUCBS2 - _ucblocks; in ds3000_read_ucblocks()
661 state->prevUCBS2 = _ucblocks; in ds3000_read_ucblocks()
672 struct ds3000_state *state = fe->demodulator_priv; in ds3000_set_tone() local
681 data = ds3000_readreg(state, 0xa2); in ds3000_set_tone()
683 ds3000_writereg(state, 0xa2, data); in ds3000_set_tone()
688 data = ds3000_readreg(state, 0xa1); in ds3000_set_tone()
691 ds3000_writereg(state, 0xa1, data); in ds3000_set_tone()
695 data = ds3000_readreg(state, 0xa2); in ds3000_set_tone()
697 ds3000_writereg(state, 0xa2, data); in ds3000_set_tone()
707 struct ds3000_state *state = fe->demodulator_priv; in ds3000_send_diseqc_msg() local
720 data = ds3000_readreg(state, 0xa2); in ds3000_send_diseqc_msg()
722 ds3000_writereg(state, 0xa2, data); in ds3000_send_diseqc_msg()
726 ds3000_writereg(state, 0xa3 + i, d->msg[i]); in ds3000_send_diseqc_msg()
728 data = ds3000_readreg(state, 0xa1); in ds3000_send_diseqc_msg()
735 ds3000_writereg(state, 0xa1, data); in ds3000_send_diseqc_msg()
739 data = ds3000_readreg(state, 0xa1); in ds3000_send_diseqc_msg()
747 data = ds3000_readreg(state, 0xa1); in ds3000_send_diseqc_msg()
750 ds3000_writereg(state, 0xa1, data); in ds3000_send_diseqc_msg()
752 data = ds3000_readreg(state, 0xa2); in ds3000_send_diseqc_msg()
755 ds3000_writereg(state, 0xa2, data); in ds3000_send_diseqc_msg()
760 data = ds3000_readreg(state, 0xa2); in ds3000_send_diseqc_msg()
763 ds3000_writereg(state, 0xa2, data); in ds3000_send_diseqc_msg()
772 struct ds3000_state *state = fe->demodulator_priv; in ds3000_diseqc_send_burst() local
778 data = ds3000_readreg(state, 0xa2); in ds3000_diseqc_send_burst()
780 ds3000_writereg(state, 0xa2, data); in ds3000_diseqc_send_burst()
785 ds3000_writereg(state, 0xa1, 0x02); in ds3000_diseqc_send_burst()
788 ds3000_writereg(state, 0xa1, 0x01); in ds3000_diseqc_send_burst()
794 data = ds3000_readreg(state, 0xa1); in ds3000_diseqc_send_burst()
801 data = ds3000_readreg(state, 0xa1); in ds3000_diseqc_send_burst()
804 ds3000_writereg(state, 0xa1, data); in ds3000_diseqc_send_burst()
806 data = ds3000_readreg(state, 0xa2); in ds3000_diseqc_send_burst()
809 ds3000_writereg(state, 0xa2, data); in ds3000_diseqc_send_burst()
814 data = ds3000_readreg(state, 0xa2); in ds3000_diseqc_send_burst()
817 ds3000_writereg(state, 0xa2, data); in ds3000_diseqc_send_burst()
824 struct ds3000_state *state = fe->demodulator_priv; in ds3000_release() local
826 if (state->config->set_lock_led) in ds3000_release()
827 state->config->set_lock_led(fe, 0); in ds3000_release()
830 kfree(state); in ds3000_release()
838 struct ds3000_state *state = NULL; in ds3000_attach() local
844 state = kzalloc(sizeof(struct ds3000_state), GFP_KERNEL); in ds3000_attach()
845 if (state == NULL) { in ds3000_attach()
850 state->config = config; in ds3000_attach()
851 state->i2c = i2c; in ds3000_attach()
852 state->prevUCBS2 = 0; in ds3000_attach()
855 ret = ds3000_readreg(state, 0x00) & 0xfe; in ds3000_attach()
862 ds3000_readreg(state, 0x02), in ds3000_attach()
863 ds3000_readreg(state, 0x01)); in ds3000_attach()
865 memcpy(&state->frontend.ops, &ds3000_ops, in ds3000_attach()
867 state->frontend.demodulator_priv = state; in ds3000_attach()
874 ds3000_set_voltage(&state->frontend, SEC_VOLTAGE_OFF); in ds3000_attach()
875 return &state->frontend; in ds3000_attach()
878 kfree(state); in ds3000_attach()
887 struct ds3000_state *state = fe->demodulator_priv; in ds3000_set_carrier_offset() local
897 ds3000_writereg(state, 0x5f, tmp >> 8); in ds3000_set_carrier_offset()
898 ds3000_writereg(state, 0x5e, tmp & 0xff); in ds3000_set_carrier_offset()
905 struct ds3000_state *state = fe->demodulator_priv; in ds3000_set_frontend() local
916 if (state->config->set_ts_params) in ds3000_set_frontend()
917 state->config->set_ts_params(fe, 0); in ds3000_set_frontend()
923 ds3000_writereg(state, 0x07, 0x80); in ds3000_set_frontend()
924 ds3000_writereg(state, 0x07, 0x00); in ds3000_set_frontend()
926 ds3000_writereg(state, 0xb2, 0x01); in ds3000_set_frontend()
928 ds3000_writereg(state, 0x00, 0x01); in ds3000_set_frontend()
934 ds3000_writereg(state, in ds3000_set_frontend()
937 value = ds3000_readreg(state, 0xfe); in ds3000_set_frontend()
940 ds3000_writereg(state, 0xfe, value); in ds3000_set_frontend()
945 ds3000_writereg(state, in ds3000_set_frontend()
949 ds3000_writereg(state, 0xfe, 0x54); in ds3000_set_frontend()
951 ds3000_writereg(state, 0xfe, 0x98); in ds3000_set_frontend()
958 ds3000_writereg(state, 0x29, 0x80); in ds3000_set_frontend()
960 ds3000_writereg(state, 0x25, 0x8a); in ds3000_set_frontend()
967 ds3000_writereg(state, 0xc3, 0x0d); in ds3000_set_frontend()
968 ds3000_writereg(state, 0xc8, value); in ds3000_set_frontend()
969 ds3000_writereg(state, 0xc4, 0x10); in ds3000_set_frontend()
970 ds3000_writereg(state, 0xc7, 0x0e); in ds3000_set_frontend()
975 ds3000_writereg(state, 0xc3, 0x07); in ds3000_set_frontend()
976 ds3000_writereg(state, 0xc8, value); in ds3000_set_frontend()
977 ds3000_writereg(state, 0xc4, 0x09); in ds3000_set_frontend()
978 ds3000_writereg(state, 0xc7, 0x12); in ds3000_set_frontend()
981 ds3000_writereg(state, 0xc3, value); in ds3000_set_frontend()
982 ds3000_writereg(state, 0xc8, 0x0e); in ds3000_set_frontend()
983 ds3000_writereg(state, 0xc4, 0x07); in ds3000_set_frontend()
984 ds3000_writereg(state, 0xc7, 0x18); in ds3000_set_frontend()
987 ds3000_writereg(state, 0xc3, value); in ds3000_set_frontend()
988 ds3000_writereg(state, 0xc8, 0x0a); in ds3000_set_frontend()
989 ds3000_writereg(state, 0xc4, 0x05); in ds3000_set_frontend()
990 ds3000_writereg(state, 0xc7, 0x24); in ds3000_set_frontend()
996 ds3000_writereg(state, 0x61, value & 0x00ff); in ds3000_set_frontend()
997 ds3000_writereg(state, 0x62, (value & 0xff00) >> 8); in ds3000_set_frontend()
1000 ds3000_writereg(state, 0x56, 0x00); in ds3000_set_frontend()
1003 ds3000_writereg(state, 0x76, 0x00); in ds3000_set_frontend()
1011 if (state->config->ci_mode) { in ds3000_set_frontend()
1015 ds3000_writereg(state, 0xfd, 0x80); in ds3000_set_frontend()
1018 ds3000_writereg(state, 0xfd, 0x01); in ds3000_set_frontend()
1024 ds3000_writereg(state, 0x00, 0x00); in ds3000_set_frontend()
1026 ds3000_writereg(state, 0xb2, 0x00); in ds3000_set_frontend()
1064 struct ds3000_state *state = fe->demodulator_priv; in ds3000_get_algo() local
1066 if (state->config->set_lock_led) in ds3000_get_algo()
1067 state->config->set_lock_led(fe, 0); in ds3000_get_algo()
1080 struct ds3000_state *state = fe->demodulator_priv; in ds3000_initfe() local
1085 ds3000_writereg(state, 0x08, 0x01 | ds3000_readreg(state, 0x08)); in ds3000_initfe()