Lines Matching refs:fe

337 static int s5h1409_softreset(struct dvb_frontend *fe)
339 struct s5h1409_state *state = fe->demodulator_priv;
353 static int s5h1409_set_if_freq(struct dvb_frontend *fe, int KHz)
355 struct s5h1409_state *state = fe->demodulator_priv;
378 static int s5h1409_set_spectralinversion(struct dvb_frontend *fe, int inverted)
380 struct s5h1409_state *state = fe->demodulator_priv;
390 static int s5h1409_enable_modulation(struct dvb_frontend *fe,
393 struct s5h1409_state *state = fe->demodulator_priv;
401 s5h1409_set_if_freq(fe, S5H1409_VSB_IF_FREQ);
409 s5h1409_set_if_freq(fe, S5H1409_QAM_IF_FREQ);
419 s5h1409_softreset(fe);
424 static int s5h1409_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
426 struct s5h1409_state *state = fe->demodulator_priv;
436 static int s5h1409_set_gpio(struct dvb_frontend *fe, int enable)
438 struct s5h1409_state *state = fe->demodulator_priv;
450 static int s5h1409_sleep(struct dvb_frontend *fe, int enable)
452 struct s5h1409_state *state = fe->demodulator_priv;
459 static int s5h1409_register_reset(struct dvb_frontend *fe)
461 struct s5h1409_state *state = fe->demodulator_priv;
468 static void s5h1409_set_qam_amhum_mode(struct dvb_frontend *fe)
470 struct s5h1409_state *state = fe->demodulator_priv;
521 static void s5h1409_set_qam_amhum_mode_legacy(struct dvb_frontend *fe)
523 struct s5h1409_state *state = fe->demodulator_priv;
553 static void s5h1409_set_qam_interleave_mode(struct dvb_frontend *fe)
555 struct s5h1409_state *state = fe->demodulator_priv;
591 static void s5h1409_set_qam_interleave_mode_legacy(struct dvb_frontend *fe)
593 struct s5h1409_state *state = fe->demodulator_priv;
622 static int s5h1409_set_frontend(struct dvb_frontend *fe)
624 struct dtv_frontend_properties *p = &fe->dtv_property_cache;
625 struct s5h1409_state *state = fe->demodulator_priv;
629 s5h1409_softreset(fe);
633 s5h1409_enable_modulation(fe, p->modulation);
635 if (fe->ops.tuner_ops.set_params) {
636 if (fe->ops.i2c_gate_ctrl)
637 fe->ops.i2c_gate_ctrl(fe, 1);
638 fe->ops.tuner_ops.set_params(fe);
639 if (fe->ops.i2c_gate_ctrl)
640 fe->ops.i2c_gate_ctrl(fe, 0);
645 s5h1409_softreset(fe);
653 s5h1409_set_qam_interleave_mode(fe);
654 s5h1409_set_qam_amhum_mode(fe);
656 s5h1409_set_qam_amhum_mode_legacy(fe);
657 s5h1409_set_qam_interleave_mode_legacy(fe);
664 static int s5h1409_set_mpeg_timing(struct dvb_frontend *fe, int mode)
666 struct s5h1409_state *state = fe->demodulator_priv;
696 static int s5h1409_init(struct dvb_frontend *fe)
700 struct s5h1409_state *state = fe->demodulator_priv;
703 s5h1409_sleep(fe, 0);
704 s5h1409_register_reset(fe);
734 s5h1409_set_spectralinversion(fe, state->config->inversion);
735 s5h1409_set_if_freq(fe, state->if_freq);
736 s5h1409_set_gpio(fe, state->config->gpio);
737 s5h1409_set_mpeg_timing(fe, state->config->mpeg_timing);
738 s5h1409_softreset(fe);
741 s5h1409_i2c_gate_ctrl(fe, 0);
746 static int s5h1409_read_status(struct dvb_frontend *fe, enum fe_status *status)
748 struct s5h1409_state *state = fe->demodulator_priv;
760 s5h1409_set_qam_interleave_mode(fe);
761 s5h1409_set_qam_amhum_mode(fe);
779 if (fe->ops.tuner_ops.get_status) {
780 if (fe->ops.i2c_gate_ctrl)
781 fe->ops.i2c_gate_ctrl(fe, 1);
783 fe->ops.tuner_ops.get_status(fe, &tuner_status);
785 if (fe->ops.i2c_gate_ctrl)
786 fe->ops.i2c_gate_ctrl(fe, 0);
798 static int s5h1409_qam256_lookup_snr(struct dvb_frontend *fe, u16 *snr, u16 v)
813 static int s5h1409_qam64_lookup_snr(struct dvb_frontend *fe, u16 *snr, u16 v)
828 static int s5h1409_vsb_lookup_snr(struct dvb_frontend *fe, u16 *snr, u16 v)
844 static int s5h1409_read_snr(struct dvb_frontend *fe, u16 *snr)
846 struct s5h1409_state *state = fe->demodulator_priv;
853 return s5h1409_qam64_lookup_snr(fe, snr, reg);
856 return s5h1409_qam256_lookup_snr(fe, snr, reg);
859 return s5h1409_vsb_lookup_snr(fe, snr, reg);
867 static int s5h1409_read_signal_strength(struct dvb_frontend *fe,
879 int ret = s5h1409_read_snr(fe, &snr);
902 static int s5h1409_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)
904 struct s5h1409_state *state = fe->demodulator_priv;
911 static int s5h1409_read_ber(struct dvb_frontend *fe, u32 *ber)
913 return s5h1409_read_ucblocks(fe, ber);
916 static int s5h1409_get_frontend(struct dvb_frontend *fe,
919 struct s5h1409_state *state = fe->demodulator_priv;
927 static int s5h1409_get_tune_settings(struct dvb_frontend *fe,
934 static void s5h1409_release(struct dvb_frontend *fe)
936 struct s5h1409_state *state = fe->demodulator_priv;