• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/media/common/tuners/

Lines Matching defs:fe

2     tda18271-fe.c - driver for the Philips / NXP TDA18271 silicon tuner
39 static int tda18271_toggle_output(struct dvb_frontend *fe, int standby)
41 struct tda18271_priv *priv = fe->tuner_priv;
43 int ret = tda18271_set_standby_mode(fe, standby ? 1 : 0,
60 static inline int charge_pump_source(struct dvb_frontend *fe, int force)
62 struct tda18271_priv *priv = fe->tuner_priv;
63 return tda18271_charge_pump_source(fe,
69 static inline void tda18271_set_if_notch(struct dvb_frontend *fe)
71 struct tda18271_priv *priv = fe->tuner_priv;
84 static int tda18271_channel_configuration(struct dvb_frontend *fe,
88 struct tda18271_priv *priv = fe->tuner_priv;
118 ret = tda18271_write_regs(fe, R_EB22, 1);
132 tda18271_calc_ir_measure(fe, &freq);
134 tda18271_calc_bp_filter(fe, &freq);
136 tda18271_calc_rf_band(fe, &freq);
138 tda18271_calc_gain_taper(fe, &freq);
159 ret = tda18271_write_regs(fe, R_EB1, 1);
169 tda18271_calc_main_pll(fe, N);
170 tda18271_set_if_notch(fe);
171 tda18271_write_regs(fe, R_MPD, 4);
174 tda18271_calc_cal_pll(fe, N);
175 tda18271_write_regs(fe, R_CPD, 4);
178 tda18271_set_if_notch(fe);
179 tda18271_write_regs(fe, R_MPD, 1);
183 ret = tda18271_write_regs(fe, R_TM, 7);
188 charge_pump_source(fe, 1);
193 charge_pump_source(fe, 0);
203 ret = tda18271_write_regs(fe, R_EP3, 1);
209 static int tda18271_read_thermometer(struct dvb_frontend *fe)
211 struct tda18271_priv *priv = fe->tuner_priv;
217 tda18271_write_regs(fe, R_TM, 1);
220 tda18271_read_regs(fe);
230 tda18271_write_regs(fe, R_TM, 1);
235 tda18271_read_regs(fe);
238 tm = tda18271_lookup_thermometer(fe);
242 tda18271_write_regs(fe, R_TM, 1);
246 tda18271_write_regs(fe, R_EP4, 1);
253 static int tda18271c2_rf_tracking_filters_correction(struct dvb_frontend *fe,
256 struct tda18271_priv *priv = fe->tuner_priv;
264 ret = tda18271_set_standby_mode(fe, 0, 0, 0);
269 tm_current = tda18271_read_thermometer(fe);
273 tda18271_calc_rf_cal(fe, &freq);
276 i = tda18271_lookup_rf_band(fe, &freq, NULL);
293 tda18271_lookup_map(fe, RF_CAL_DC_OVER_DT, &freq, &dc_over_dt);
299 ret = tda18271_write_regs(fe, R_EB14, 1);
304 static int tda18271_por(struct dvb_frontend *fe)
306 struct tda18271_priv *priv = fe->tuner_priv;
312 ret = tda18271_write_regs(fe, R_EB12, 1);
318 ret = tda18271_write_regs(fe, R_EB18, 1);
325 ret = tda18271_set_standby_mode(fe, 1, 0, 0);
332 ret = tda18271_write_regs(fe, R_EB21, 3);
337 static int tda18271_calibrate_rf(struct dvb_frontend *fe, u32 freq)
339 struct tda18271_priv *priv = fe->tuner_priv;
345 tda18271_write_regs(fe, R_EP4, 1);
351 tda18271_write_regs(fe, R_EB18, 1);
355 tda18271_calc_bp_filter(fe, &freq);
356 tda18271_calc_gain_taper(fe, &freq);
357 tda18271_calc_rf_band(fe, &freq);
358 tda18271_calc_km(fe, &freq);
360 tda18271_write_regs(fe, R_EP1, 3);
361 tda18271_write_regs(fe, R_EB13, 1);
364 tda18271_charge_pump_source(fe, TDA18271_MAIN_PLL, 1);
367 tda18271_charge_pump_source(fe, TDA18271_CAL_PLL, 1);
371 tda18271_write_regs(fe, R_EB14, 1);
375 tda18271_write_regs(fe, R_EB20, 1);
379 tda18271_write_regs(fe, R_EP4, 2);
386 tda18271_calc_cal_pll(fe, N);
387 tda18271_write_regs(fe, R_CPD, 4);
392 tda18271_calc_main_pll(fe, N);
393 tda18271_write_regs(fe, R_MPD, 4);
397 tda18271_write_regs(fe, R_EP2, 1);
398 tda18271_write_regs(fe, R_EP1, 1);
399 tda18271_write_regs(fe, R_EP2, 1);
400 tda18271_write_regs(fe, R_EP1, 1);
405 tda18271_charge_pump_source(fe, TDA18271_MAIN_PLL, 0);
408 tda18271_charge_pump_source(fe, TDA18271_CAL_PLL, 0);
414 tda18271_write_regs(fe, R_EB20, 1);
427 tda18271_write_regs(fe, R_EB18, 1);
429 tda18271_write_regs(fe, R_EP3, 2);
432 tda18271_write_regs(fe, R_EP1, 1);
435 tda18271_read_extended(fe);
440 static int tda18271_powerscan(struct dvb_frontend *fe,
443 struct tda18271_priv *priv = fe->tuner_priv;
452 tda18271_calc_rf_band(fe, &freq);
453 tda18271_calc_rf_cal(fe, &freq);
454 tda18271_calc_gain_taper(fe, &freq);
455 tda18271_lookup_cid_target(fe, &freq, &cid_target, &count_limit);
457 tda18271_write_regs(fe, R_EP2, 1);
458 tda18271_write_regs(fe, R_EB14, 1);
463 tda18271_calc_main_pll(fe, freq);
464 tda18271_write_regs(fe, R_MPD, 4);
471 tda18271_write_regs(fe, R_EP4, 1);
474 tda18271_write_regs(fe, R_EP2, 1);
477 ret = tda18271_read_extended(fe);
492 tda18271_calc_main_pll(fe, freq);
493 tda18271_write_regs(fe, R_MPD, 4);
502 tda18271_write_regs(fe, R_EP2, 1);
505 ret = tda18271_read_extended(fe);
534 static int tda18271_powerscan_init(struct dvb_frontend *fe)
536 struct tda18271_priv *priv = fe->tuner_priv;
550 ret = tda18271_write_regs(fe, R_EP3, 2);
555 ret = tda18271_write_regs(fe, R_EB18, 1);
565 ret = tda18271_write_regs(fe, R_EB21, 3);
570 static int tda18271_rf_tracking_filters_init(struct dvb_frontend *fe, u32 freq)
572 struct tda18271_priv *priv = fe->tuner_priv;
585 i = tda18271_lookup_rf_band(fe, &freq, NULL);
600 bcal = tda18271_powerscan(fe, &rf_default[rf], &rf_freq[rf]);
604 tda18271_calc_rf_cal(fe, &rf_freq[rf]);
608 prog_cal[rf] = tda18271_calibrate_rf(fe, rf_freq[rf]);
641 static int tda18271_calc_rf_filter_curve(struct dvb_frontend *fe)
643 struct tda18271_priv *priv = fe->tuner_priv;
652 ret = tda18271_powerscan_init(fe);
659 tda18271_rf_tracking_filters_init(fe, 1000 *
665 priv->tm_rfcal = tda18271_read_thermometer(fe);
672 static int tda18271c2_rf_cal_init(struct dvb_frontend *fe)
674 struct tda18271_priv *priv = fe->tuner_priv;
685 ret = tda18271_calc_rf_filter_curve(fe);
689 ret = tda18271_por(fe);
703 static int tda18271c1_rf_tracking_filter_calibration(struct dvb_frontend *fe,
706 struct tda18271_priv *priv = fe->tuner_priv;
712 tda18271_calc_bp_filter(fe, &freq);
713 tda18271_write_regs(fe, R_EP1, 1);
717 tda18271_write_regs(fe, R_EB4, 1);
720 tda18271_write_regs(fe, R_EB7, 1);
723 tda18271_write_regs(fe, R_EB14, 1);
726 tda18271_write_regs(fe, R_EB20, 1);
742 tda18271_calc_cal_pll(fe, N);
755 tda18271_calc_main_pll(fe, N);
757 ret = tda18271_write_regs(fe, R_EP3, 11);
764 tda18271_calc_km(fe, &freq);
765 tda18271_write_regs(fe, R_EB13, 1);
768 tda18271_calc_rf_band(fe, &freq);
771 tda18271_calc_gain_taper(fe, &freq);
773 tda18271_write_regs(fe, R_EP2, 1);
774 tda18271_write_regs(fe, R_EP1, 1);
775 tda18271_write_regs(fe, R_EP2, 1);
776 tda18271_write_regs(fe, R_EP1, 1);
780 tda18271_write_regs(fe, R_EB4, 1);
783 tda18271_write_regs(fe, R_EB7, 1);
787 tda18271_write_regs(fe, R_EB20, 1);
791 tda18271_write_regs(fe, R_EP4, 1);
793 tda18271_write_regs(fe, R_EP1, 1);
796 if (0 == tda18271_calc_rf_cal(fe, &freq))
797 tda18271_write_regs(fe, R_EB14, 1);
804 static int tda18271_ir_cal_init(struct dvb_frontend *fe)
806 struct tda18271_priv *priv = fe->tuner_priv;
810 ret = tda18271_read_regs(fe);
816 ret = tda18271_init_regs(fe);
821 static int tda18271_init(struct dvb_frontend *fe)
823 struct tda18271_priv *priv = fe->tuner_priv;
829 ret = tda18271_set_standby_mode(fe, 0, 0, 0);
834 ret = tda18271_ir_cal_init(fe);
839 tda18271c2_rf_cal_init(fe);
846 static int tda18271_sleep(struct dvb_frontend *fe)
848 struct tda18271_priv *priv = fe->tuner_priv;
854 ret = tda18271_toggle_output(fe, 1);
863 static int tda18271_agc(struct dvb_frontend *fe)
865 struct tda18271_priv *priv = fe->tuner_priv;
877 if (fe->callback)
878 ret = fe->callback(priv->i2c_props.adap->algo_data,
894 static int tda18271_tune(struct dvb_frontend *fe,
897 struct tda18271_priv *priv = fe->tuner_priv;
903 ret = tda18271_agc(fe);
907 ret = tda18271_init(fe);
915 tda18271c1_rf_tracking_filter_calibration(fe, freq, bw);
918 tda18271c2_rf_tracking_filters_correction(fe, freq);
921 ret = tda18271_channel_configuration(fe, map, freq, bw);
930 static int tda18271_set_params(struct dvb_frontend *fe,
933 struct tda18271_priv *priv = fe->tuner_priv;
941 if (fe->ops.info.type == FE_ATSC) {
956 } else if (fe->ops.info.type == FE_OFDM) {
980 if (fe->ops.analog_ops.standby)
981 fe->ops.analog_ops.standby(fe);
983 ret = tda18271_tune(fe, map, freq, bw);
989 priv->bandwidth = (fe->ops.info.type == FE_OFDM) ?
995 static int tda18271_set_analog_params(struct dvb_frontend *fe,
998 struct tda18271_priv *priv = fe->tuner_priv;
1039 ret = tda18271_tune(fe, map, freq, 0);
1050 static int tda18271_release(struct dvb_frontend *fe)
1052 struct tda18271_priv *priv = fe->tuner_priv;
1061 fe->tuner_priv = NULL;
1066 static int tda18271_get_frequency(struct dvb_frontend *fe, u32 *frequency)
1068 struct tda18271_priv *priv = fe->tuner_priv;
1073 static int tda18271_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth)
1075 struct tda18271_priv *priv = fe->tuner_priv;
1099 static int tda18271_dump_std_map(struct dvb_frontend *fe)
1101 struct tda18271_priv *priv = fe->tuner_priv;
1123 static int tda18271_update_std_map(struct dvb_frontend *fe,
1126 struct tda18271_priv *priv = fe->tuner_priv;
1150 static int tda18271_get_id(struct dvb_frontend *fe)
1152 struct tda18271_priv *priv = fe->tuner_priv;
1158 tda18271_read_regs(fe);
1184 static int tda18271_setup_configuration(struct dvb_frontend *fe,
1187 struct tda18271_priv *priv = fe->tuner_priv;
1210 static int tda18271_set_config(struct dvb_frontend *fe, void *priv_cfg)
1214 tda18271_setup_configuration(fe, cfg);
1217 tda18271_init(fe);
1221 tda18271_update_std_map(fe, cfg->std_map);
1243 struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,
1260 fe->tuner_priv = priv;
1262 tda18271_setup_configuration(fe, cfg);
1267 ret = tda18271_get_id(fe);
1271 ret = tda18271_assign_map_layout(fe);
1276 tda18271_init_regs(fe);
1280 tda18271c2_rf_cal_init(fe);
1286 fe->tuner_priv = priv;
1301 tda18271_update_std_map(fe, cfg->std_map);
1304 tda18271_init(fe);
1310 tda18271_update_std_map(fe, cfg->std_map);
1314 memcpy(&fe->ops.tuner_ops, &tda18271_tuner_ops,
1318 tda18271_dump_std_map(fe);
1320 return fe;
1324 tda18271_release(fe);