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()
409 struct ds3000_state *state = fe->demodulator_priv; in ds3000_set_voltage() local
414 data = ds3000_readreg(state, 0xa2); in ds3000_set_voltage()
429 ds3000_writereg(state, 0xa2, data); in ds3000_set_voltage()
436 struct ds3000_state *state = fe->demodulator_priv; in ds3000_read_status() local
444 lock = ds3000_readreg(state, 0xd1); in ds3000_read_status()
452 lock = ds3000_readreg(state, 0x0d); in ds3000_read_status()
463 if (state->config->set_lock_led) in ds3000_read_status()
464 state->config->set_lock_led(fe, *status == 0 ? 0 : 1); in ds3000_read_status()
474 struct ds3000_state *state = fe->demodulator_priv; in ds3000_read_ber() local
485 ds3000_writereg(state, 0xf9, 0x04); in ds3000_read_ber()
487 data = ds3000_readreg(state, 0xf8); in ds3000_read_ber()
493 *ber = (ds3000_readreg(state, 0xf7) << 8) | in ds3000_read_ber()
494 ds3000_readreg(state, 0xf6); in ds3000_read_ber()
499 ds3000_writereg(state, 0xf8, data); in ds3000_read_ber()
500 ds3000_writereg(state, 0xf8, data); in ds3000_read_ber()
508 lpdc_frames = (ds3000_readreg(state, 0xd7) << 16) | in ds3000_read_ber()
509 (ds3000_readreg(state, 0xd6) << 8) | in ds3000_read_ber()
510 ds3000_readreg(state, 0xd5); in ds3000_read_ber()
512 ber_reading = (ds3000_readreg(state, 0xf8) << 8) | in ds3000_read_ber()
513 ds3000_readreg(state, 0xf7); in ds3000_read_ber()
516 ds3000_writereg(state, 0xd1, 0x01); in ds3000_read_ber()
518 ds3000_writereg(state, 0xf9, 0x01); in ds3000_read_ber()
520 ds3000_writereg(state, 0xf9, 0x00); in ds3000_read_ber()
522 ds3000_writereg(state, 0xd1, 0x00); in ds3000_read_ber()
548 struct ds3000_state *state = fe->demodulator_priv; in ds3000_read_snr() local
576 snr_reading = ds3000_readreg(state, 0xff); in ds3000_read_snr()
592 dvbs2_noise_reading = (ds3000_readreg(state, 0x8c) & 0x3f) + in ds3000_read_snr()
593 (ds3000_readreg(state, 0x8d) << 4); in ds3000_read_snr()
594 dvbs2_signal_reading = ds3000_readreg(state, 0x8e); in ds3000_read_snr()
634 struct ds3000_state *state = fe->demodulator_priv; in ds3000_read_ucblocks() local
643 *ucblocks = (ds3000_readreg(state, 0xf5) << 8) | in ds3000_read_ucblocks()
644 ds3000_readreg(state, 0xf4); in ds3000_read_ucblocks()
645 data = ds3000_readreg(state, 0xf8); in ds3000_read_ucblocks()
648 ds3000_writereg(state, 0xf8, data); in ds3000_read_ucblocks()
651 ds3000_writereg(state, 0xf8, data); in ds3000_read_ucblocks()
654 _ucblocks = (ds3000_readreg(state, 0xe2) << 8) | in ds3000_read_ucblocks()
655 ds3000_readreg(state, 0xe1); in ds3000_read_ucblocks()
656 if (_ucblocks > state->prevUCBS2) in ds3000_read_ucblocks()
657 *ucblocks = _ucblocks - state->prevUCBS2; in ds3000_read_ucblocks()
659 *ucblocks = state->prevUCBS2 - _ucblocks; in ds3000_read_ucblocks()
660 state->prevUCBS2 = _ucblocks; in ds3000_read_ucblocks()
671 struct ds3000_state *state = fe->demodulator_priv; in ds3000_set_tone() local
680 data = ds3000_readreg(state, 0xa2); in ds3000_set_tone()
682 ds3000_writereg(state, 0xa2, data); in ds3000_set_tone()
687 data = ds3000_readreg(state, 0xa1); in ds3000_set_tone()
690 ds3000_writereg(state, 0xa1, data); in ds3000_set_tone()
694 data = ds3000_readreg(state, 0xa2); in ds3000_set_tone()
696 ds3000_writereg(state, 0xa2, data); in ds3000_set_tone()
706 struct ds3000_state *state = fe->demodulator_priv; in ds3000_send_diseqc_msg() local
719 data = ds3000_readreg(state, 0xa2); in ds3000_send_diseqc_msg()
721 ds3000_writereg(state, 0xa2, data); in ds3000_send_diseqc_msg()
725 ds3000_writereg(state, 0xa3 + i, d->msg[i]); in ds3000_send_diseqc_msg()
727 data = ds3000_readreg(state, 0xa1); in ds3000_send_diseqc_msg()
734 ds3000_writereg(state, 0xa1, data); in ds3000_send_diseqc_msg()
738 data = ds3000_readreg(state, 0xa1); in ds3000_send_diseqc_msg()
746 data = ds3000_readreg(state, 0xa1); in ds3000_send_diseqc_msg()
749 ds3000_writereg(state, 0xa1, data); in ds3000_send_diseqc_msg()
751 data = ds3000_readreg(state, 0xa2); in ds3000_send_diseqc_msg()
754 ds3000_writereg(state, 0xa2, data); in ds3000_send_diseqc_msg()
759 data = ds3000_readreg(state, 0xa2); in ds3000_send_diseqc_msg()
762 ds3000_writereg(state, 0xa2, data); in ds3000_send_diseqc_msg()
771 struct ds3000_state *state = fe->demodulator_priv; in ds3000_diseqc_send_burst() local
777 data = ds3000_readreg(state, 0xa2); in ds3000_diseqc_send_burst()
779 ds3000_writereg(state, 0xa2, data); in ds3000_diseqc_send_burst()
784 ds3000_writereg(state, 0xa1, 0x02); in ds3000_diseqc_send_burst()
787 ds3000_writereg(state, 0xa1, 0x01); in ds3000_diseqc_send_burst()
793 data = ds3000_readreg(state, 0xa1); in ds3000_diseqc_send_burst()
800 data = ds3000_readreg(state, 0xa1); in ds3000_diseqc_send_burst()
803 ds3000_writereg(state, 0xa1, data); in ds3000_diseqc_send_burst()
805 data = ds3000_readreg(state, 0xa2); in ds3000_diseqc_send_burst()
808 ds3000_writereg(state, 0xa2, data); in ds3000_diseqc_send_burst()
813 data = ds3000_readreg(state, 0xa2); in ds3000_diseqc_send_burst()
816 ds3000_writereg(state, 0xa2, data); in ds3000_diseqc_send_burst()
823 struct ds3000_state *state = fe->demodulator_priv; in ds3000_release() local
825 if (state->config->set_lock_led) in ds3000_release()
826 state->config->set_lock_led(fe, 0); in ds3000_release()
829 kfree(state); in ds3000_release()
837 struct ds3000_state *state = NULL; in ds3000_attach() local
843 state = kzalloc(sizeof(struct ds3000_state), GFP_KERNEL); in ds3000_attach()
844 if (state == NULL) { in ds3000_attach()
849 state->config = config; in ds3000_attach()
850 state->i2c = i2c; in ds3000_attach()
851 state->prevUCBS2 = 0; in ds3000_attach()
854 ret = ds3000_readreg(state, 0x00) & 0xfe; in ds3000_attach()
861 ds3000_readreg(state, 0x02), in ds3000_attach()
862 ds3000_readreg(state, 0x01)); in ds3000_attach()
864 memcpy(&state->frontend.ops, &ds3000_ops, in ds3000_attach()
866 state->frontend.demodulator_priv = state; in ds3000_attach()
873 ds3000_set_voltage(&state->frontend, SEC_VOLTAGE_OFF); in ds3000_attach()
874 return &state->frontend; in ds3000_attach()
877 kfree(state); in ds3000_attach()
886 struct ds3000_state *state = fe->demodulator_priv; in ds3000_set_carrier_offset() local
896 ds3000_writereg(state, 0x5f, tmp >> 8); in ds3000_set_carrier_offset()
897 ds3000_writereg(state, 0x5e, tmp & 0xff); in ds3000_set_carrier_offset()
904 struct ds3000_state *state = fe->demodulator_priv; in ds3000_set_frontend() local
915 if (state->config->set_ts_params) in ds3000_set_frontend()
916 state->config->set_ts_params(fe, 0); in ds3000_set_frontend()
922 ds3000_writereg(state, 0x07, 0x80); in ds3000_set_frontend()
923 ds3000_writereg(state, 0x07, 0x00); in ds3000_set_frontend()
925 ds3000_writereg(state, 0xb2, 0x01); in ds3000_set_frontend()
927 ds3000_writereg(state, 0x00, 0x01); in ds3000_set_frontend()
933 ds3000_writereg(state, in ds3000_set_frontend()
936 value = ds3000_readreg(state, 0xfe); in ds3000_set_frontend()
939 ds3000_writereg(state, 0xfe, value); in ds3000_set_frontend()
944 ds3000_writereg(state, in ds3000_set_frontend()
948 ds3000_writereg(state, 0xfe, 0x54); in ds3000_set_frontend()
950 ds3000_writereg(state, 0xfe, 0x98); in ds3000_set_frontend()
957 ds3000_writereg(state, 0x29, 0x80); in ds3000_set_frontend()
959 ds3000_writereg(state, 0x25, 0x8a); in ds3000_set_frontend()
966 ds3000_writereg(state, 0xc3, 0x0d); in ds3000_set_frontend()
967 ds3000_writereg(state, 0xc8, value); in ds3000_set_frontend()
968 ds3000_writereg(state, 0xc4, 0x10); in ds3000_set_frontend()
969 ds3000_writereg(state, 0xc7, 0x0e); in ds3000_set_frontend()
974 ds3000_writereg(state, 0xc3, 0x07); in ds3000_set_frontend()
975 ds3000_writereg(state, 0xc8, value); in ds3000_set_frontend()
976 ds3000_writereg(state, 0xc4, 0x09); in ds3000_set_frontend()
977 ds3000_writereg(state, 0xc7, 0x12); in ds3000_set_frontend()
980 ds3000_writereg(state, 0xc3, value); in ds3000_set_frontend()
981 ds3000_writereg(state, 0xc8, 0x0e); in ds3000_set_frontend()
982 ds3000_writereg(state, 0xc4, 0x07); in ds3000_set_frontend()
983 ds3000_writereg(state, 0xc7, 0x18); in ds3000_set_frontend()
986 ds3000_writereg(state, 0xc3, value); in ds3000_set_frontend()
987 ds3000_writereg(state, 0xc8, 0x0a); in ds3000_set_frontend()
988 ds3000_writereg(state, 0xc4, 0x05); in ds3000_set_frontend()
989 ds3000_writereg(state, 0xc7, 0x24); in ds3000_set_frontend()
995 ds3000_writereg(state, 0x61, value & 0x00ff); in ds3000_set_frontend()
996 ds3000_writereg(state, 0x62, (value & 0xff00) >> 8); in ds3000_set_frontend()
999 ds3000_writereg(state, 0x56, 0x00); in ds3000_set_frontend()
1002 ds3000_writereg(state, 0x76, 0x00); in ds3000_set_frontend()
1010 if (state->config->ci_mode) { in ds3000_set_frontend()
1014 ds3000_writereg(state, 0xfd, 0x80); in ds3000_set_frontend()
1017 ds3000_writereg(state, 0xfd, 0x01); in ds3000_set_frontend()
1023 ds3000_writereg(state, 0x00, 0x00); in ds3000_set_frontend()
1025 ds3000_writereg(state, 0xb2, 0x00); in ds3000_set_frontend()
1063 struct ds3000_state *state = fe->demodulator_priv; in ds3000_get_algo() local
1065 if (state->config->set_lock_led) in ds3000_get_algo()
1066 state->config->set_lock_led(fe, 0); in ds3000_get_algo()
1079 struct ds3000_state *state = fe->demodulator_priv; in ds3000_initfe() local
1084 ds3000_writereg(state, 0x08, 0x01 | ds3000_readreg(state, 0x08)); in ds3000_initfe()