Lines Matching +full:cold +full:- +full:temp
1 // SPDX-License-Identifier: GPL-2.0-or-later
40 MODULE_PARM_DESC(debug, "set debugging level (1=info (or-able)).");
44 printk(KERN_DEBUG "m88rs2000-fe: " args); \
49 printk(KERN_INFO "m88rs2000-fe: " format "\n" , ## arg)
57 .addr = state->config->demod_addr, in m88rs2000_writereg()
63 ret = i2c_transfer(state->i2c, &msg, 1); in m88rs2000_writereg()
69 return (ret != 1) ? -EREMOTEIO : 0; in m88rs2000_writereg()
80 .addr = state->config->demod_addr, in m88rs2000_readreg()
85 .addr = state->config->demod_addr, in m88rs2000_readreg()
92 ret = i2c_transfer(state->i2c, msg, 2); in m88rs2000_readreg()
103 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_get_mclk()
121 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_set_carrieroffset()
129 return -EINVAL; in m88rs2000_set_carrieroffset()
149 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_set_symbolrate()
151 u64 temp; in m88rs2000_set_symbolrate() local
156 return -EINVAL; in m88rs2000_set_symbolrate()
160 return -EINVAL; in m88rs2000_set_symbolrate()
162 temp = srate / 1000; in m88rs2000_set_symbolrate()
163 temp *= 1 << 24; in m88rs2000_set_symbolrate()
165 do_div(temp, mclk); in m88rs2000_set_symbolrate()
167 b[0] = (u8) (temp >> 16) & 0xff; in m88rs2000_set_symbolrate()
168 b[1] = (u8) (temp >> 8) & 0xff; in m88rs2000_set_symbolrate()
169 b[2] = (u8) temp & 0xff; in m88rs2000_set_symbolrate()
196 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_send_diseqc_msg()
205 for (i = 0; i < m->msg_len; i++) in m88rs2000_send_diseqc_msg()
206 m88rs2000_writereg(state, 0xb3 + i, m->msg[i]); in m88rs2000_send_diseqc_msg()
210 reg |= ((m->msg_len - 1) << 3) | 0x07; in m88rs2000_send_diseqc_msg()
240 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_send_diseqc_burst()
258 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_set_tone()
378 return -EINVAL; in m88rs2000_tab_set()
397 return -EINVAL; in m88rs2000_tab_set()
400 return -ENODEV; in m88rs2000_tab_set()
408 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_set_voltage()
433 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_init()
437 /* Setup frontend from shutdown/cold */ in m88rs2000_init()
438 if (state->config->inittab) in m88rs2000_init()
440 (struct inittab *)state->config->inittab); in m88rs2000_init()
449 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_sleep()
459 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_read_status()
467 if (state->config->set_ts_params) in m88rs2000_read_status()
468 state->config->set_ts_params(fe, CALL_IS_READ); in m88rs2000_read_status()
475 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_read_ber()
502 if (fe->ops.tuner_ops.get_rf_strength) in m88rs2000_read_signal_strength()
503 fe->ops.tuner_ops.get_rf_strength(fe, strength); in m88rs2000_read_signal_strength()
510 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_read_snr()
519 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_read_ucblocks()
599 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_set_frontend()
600 struct dtv_frontend_properties *c = &fe->dtv_property_cache; in m88rs2000_set_frontend()
607 state->no_lock_count = 0; in m88rs2000_set_frontend()
609 if (c->delivery_system != SYS_DVBS) { in m88rs2000_set_frontend()
611 __func__, c->delivery_system); in m88rs2000_set_frontend()
612 return -EOPNOTSUPP; in m88rs2000_set_frontend()
616 if (fe->ops.tuner_ops.set_params) in m88rs2000_set_frontend()
617 ret = fe->ops.tuner_ops.set_params(fe); in m88rs2000_set_frontend()
620 return -ENODEV; in m88rs2000_set_frontend()
622 if (fe->ops.tuner_ops.get_frequency) { in m88rs2000_set_frontend()
623 ret = fe->ops.tuner_ops.get_frequency(fe, &tuner_freq); in m88rs2000_set_frontend()
626 return -ENODEV; in m88rs2000_set_frontend()
628 offset = (s16)((s32)tuner_freq - c->frequency); in m88rs2000_set_frontend()
634 if (((c->frequency % 192857) >= (192857 - 3000)) || in m88rs2000_set_frontend()
635 (c->frequency % 192857) <= 3000) in m88rs2000_set_frontend()
642 return -ENODEV; in m88rs2000_set_frontend()
645 if (c->symbol_rate > 27500000) in m88rs2000_set_frontend()
652 return -ENODEV; in m88rs2000_set_frontend()
655 ret = m88rs2000_set_fec(state, c->fec_inner); in m88rs2000_set_frontend()
663 return -ENODEV; in m88rs2000_set_frontend()
666 ret = m88rs2000_set_symbolrate(fe, c->symbol_rate); in m88rs2000_set_frontend()
668 return -ENODEV; in m88rs2000_set_frontend()
673 return -ENODEV; in m88rs2000_set_frontend()
681 state->no_lock_count++; in m88rs2000_set_frontend()
682 if (state->no_lock_count == 15) { in m88rs2000_set_frontend()
686 state->no_lock_count = 0; in m88rs2000_set_frontend()
692 state->fec_inner = m88rs2000_get_fec(state); in m88rs2000_set_frontend()
697 state->tuner_frequency = c->frequency; in m88rs2000_set_frontend()
698 state->symbol_rate = c->symbol_rate; in m88rs2000_set_frontend()
705 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_get_frontend()
707 c->fec_inner = state->fec_inner; in m88rs2000_get_frontend()
708 c->frequency = state->tuner_frequency; in m88rs2000_get_frontend()
709 c->symbol_rate = state->symbol_rate; in m88rs2000_get_frontend()
716 struct dtv_frontend_properties *c = &fe->dtv_property_cache; in m88rs2000_get_tune_settings()
718 if (c->symbol_rate > 3000000) in m88rs2000_get_tune_settings()
719 tune->min_delay_ms = 2000; in m88rs2000_get_tune_settings()
721 tune->min_delay_ms = 3000; in m88rs2000_get_tune_settings()
723 tune->step_size = c->symbol_rate / 16000; in m88rs2000_get_tune_settings()
724 tune->max_drift = c->symbol_rate / 2000; in m88rs2000_get_tune_settings()
731 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_i2c_gate_ctrl()
743 struct m88rs2000_state *state = fe->demodulator_priv; in m88rs2000_release()
750 .name = "M88RS2000 DVB-S",
794 state->config = config; in m88rs2000_attach()
795 state->i2c = i2c; in m88rs2000_attach()
796 state->tuner_frequency = 0; in m88rs2000_attach()
797 state->symbol_rate = 0; in m88rs2000_attach()
798 state->fec_inner = 0; in m88rs2000_attach()
801 memcpy(&state->frontend.ops, &m88rs2000_ops, in m88rs2000_attach()
803 state->frontend.demodulator_priv = state; in m88rs2000_attach()
804 return &state->frontend; in m88rs2000_attach()
813 MODULE_DESCRIPTION("M88RS2000 DVB-S Demodulator driver");