Lines Matching +full:single +full:- +full:shot
1 // SPDX-License-Identifier: GPL-2.0-or-later
10 2010-09-01 Josef Pavlik <josef@pavlik.it>
56 .addr = state->config->demod_address, in stv0288_writeregI()
62 ret = i2c_transfer(state->i2c, &msg, 1); in stv0288_writeregI()
68 return (ret != 1) ? -EREMOTEIO : 0; in stv0288_writeregI()
73 struct stv0288_state *state = fe->demodulator_priv; in stv0288_write()
76 return -EINVAL; in stv0288_write()
88 .addr = state->config->demod_address, in stv0288_readreg()
93 .addr = state->config->demod_address, in stv0288_readreg()
100 ret = i2c_transfer(state->i2c, msg, 2); in stv0288_readreg()
111 struct stv0288_state *state = fe->demodulator_priv; in stv0288_set_symbolrate()
116 return -EINVAL; in stv0288_set_symbolrate()
146 struct stv0288_state *state = fe->demodulator_priv; in stv0288_send_diseqc_msg()
154 stv0288_writeregI(state, 0x05, 0x12);/* modulated mode, single shot */ in stv0288_send_diseqc_msg()
156 for (i = 0; i < m->msg_len; i++) { in stv0288_send_diseqc_msg()
157 if (stv0288_writeregI(state, 0x06, m->msg[i])) in stv0288_send_diseqc_msg()
158 return -EREMOTEIO; in stv0288_send_diseqc_msg()
160 msleep(m->msg_len*12); in stv0288_send_diseqc_msg()
167 struct stv0288_state *state = fe->demodulator_priv; in stv0288_send_diseqc_burst()
171 if (stv0288_writeregI(state, 0x05, 0x03))/* burst mode, single shot */ in stv0288_send_diseqc_burst()
172 return -EREMOTEIO; in stv0288_send_diseqc_burst()
175 return -EREMOTEIO; in stv0288_send_diseqc_burst()
179 return -EREMOTEIO; in stv0288_send_diseqc_burst()
186 struct stv0288_state *state = fe->demodulator_priv; in stv0288_set_tone()
191 return -EREMOTEIO; in stv0288_set_tone()
196 return -EREMOTEIO; in stv0288_set_tone()
200 return -EINVAL; in stv0288_set_tone()
326 struct stv0288_state *state = fe->demodulator_priv; in stv0288_init()
336 if (state->config->inittab == NULL) { in stv0288_init()
343 reg = state->config->inittab[i]; in stv0288_init()
344 val = state->config->inittab[i+1]; in stv0288_init()
355 struct stv0288_state *state = fe->demodulator_priv; in stv0288_read_status()
378 struct stv0288_state *state = fe->demodulator_priv; in stv0288_read_ber()
380 if (state->errmode != STATUS_BER) in stv0288_read_ber()
392 struct stv0288_state *state = fe->demodulator_priv; in stv0288_read_signal_strength()
394 s32 signal = 0xffff - ((stv0288_readreg(state, 0x10) << 8)); in stv0288_read_signal_strength()
405 struct stv0288_state *state = fe->demodulator_priv; in stv0288_sleep()
408 state->initialised = 0; in stv0288_sleep()
414 struct stv0288_state *state = fe->demodulator_priv; in stv0288_read_snr()
416 s32 xsnr = 0xffff - ((stv0288_readreg(state, 0x2d) << 8) in stv0288_read_snr()
418 xsnr = 3 * (xsnr - 0xa100); in stv0288_read_snr()
427 struct stv0288_state *state = fe->demodulator_priv; in stv0288_read_ucblocks()
429 if (state->errmode != STATUS_BER) in stv0288_read_ucblocks()
440 struct stv0288_state *state = fe->demodulator_priv; in stv0288_set_frontend()
441 struct dtv_frontend_properties *c = &fe->dtv_property_cache; in stv0288_set_frontend()
448 if (c->delivery_system != SYS_DVBS) { in stv0288_set_frontend()
450 __func__, c->delivery_system); in stv0288_set_frontend()
451 return -EOPNOTSUPP; in stv0288_set_frontend()
454 if (state->config->set_ts_params) in stv0288_set_frontend()
455 state->config->set_ts_params(fe, 0); in stv0288_set_frontend()
458 if (fe->ops.tuner_ops.set_params) { in stv0288_set_frontend()
459 fe->ops.tuner_ops.set_params(fe); in stv0288_set_frontend()
460 if (fe->ops.i2c_gate_ctrl) in stv0288_set_frontend()
461 fe->ops.i2c_gate_ctrl(fe, 0); in stv0288_set_frontend()
465 stv0288_set_symbolrate(fe, c->symbol_rate); in stv0288_set_frontend()
470 for (tm = -9; tm < 7;) { in stv0288_set_frontend()
492 state->tuner_frequency = c->frequency; in stv0288_set_frontend()
493 state->fec_inner = FEC_AUTO; in stv0288_set_frontend()
494 state->symbol_rate = c->symbol_rate; in stv0288_set_frontend()
501 struct stv0288_state *state = fe->demodulator_priv; in stv0288_i2c_gate_ctrl()
515 struct stv0288_state *state = fe->demodulator_priv; in stv0288_release()
522 .name = "ST STV0288 DVB-S",
565 state->config = config; in stv0288_attach()
566 state->i2c = i2c; in stv0288_attach()
567 state->initialised = 0; in stv0288_attach()
568 state->tuner_frequency = 0; in stv0288_attach()
569 state->symbol_rate = 0; in stv0288_attach()
570 state->fec_inner = 0; in stv0288_attach()
571 state->errmode = STATUS_BER; in stv0288_attach()
583 memcpy(&state->frontend.ops, &stv0288_ops, in stv0288_attach()
585 state->frontend.demodulator_priv = state; in stv0288_attach()
586 return &state->frontend; in stv0288_attach()