• 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/dvb/frontends/

Lines Matching defs:fe

40 	struct dvb_frontend fe;
229 switch (state->fe.dtv_property_cache.transmission_mode) {
261 dprintk("-I- Setting output mode for demod %p to %d", &state->fe, mode);
295 dprintk("Unhandled output_mode passed to be set for demod %p", &state->fe);
310 static int dib8000_set_diversity_in(struct dvb_frontend *fe, int onoff)
312 struct dib8000_state *state = fe->demodulator_priv;
449 int dib8000_set_wbd_ref(struct dvb_frontend *fe, u16 value)
451 struct dib8000_state *state = fe->demodulator_priv;
533 int dib8000_set_gpio(struct dvb_frontend *fe, u8 num, u8 dir, u8 val)
535 struct dib8000_state *state = fe->demodulator_priv;
673 static int dib8000_reset(struct dvb_frontend *fe)
675 struct dib8000_state *state = fe->demodulator_priv;
781 if (state->cfg.update_lna(&state->fe, dyn_gain)) { // LNA has changed
844 void dib8000_pwm_agc_reset(struct dvb_frontend *fe)
846 struct dib8000_state *state = fe->demodulator_priv;
848 dib8000_set_agc_config(state, (unsigned char)(BAND_OF_FREQUENCY(fe->dtv_property_cache.frequency / 1000)));
877 static int dib8000_agc_startup(struct dvb_frontend *fe)
879 struct dib8000_state *state = fe->demodulator_priv;
890 if (dib8000_set_agc_config(state, (unsigned char)(BAND_OF_FREQUENCY(fe->dtv_property_cache.frequency / 1000))) != 0) {
903 state->cfg.agc_control(&state->fe, 1);
927 state->cfg.agc_control(&state->fe, 0);
944 int32_t dib8000_get_adc_power(struct dvb_frontend *fe, uint8_t mode)
946 struct dib8000_state *state = fe->demodulator_priv;
1005 dib8000_write_word(state, 26, state->fe.dtv_property_cache.inversion ^ i);
1007 if (state->fe.dtv_property_cache.isdbt_sb_mode) {
1010 state->fe.dtv_property_cache.isdbt_sb_segment_idx - (state->fe.dtv_property_cache.isdbt_sb_segment_count / 2) -
1011 (state->fe.dtv_property_cache.isdbt_sb_segment_count % 2);
1016 if ((state->fe.dtv_property_cache.isdbt_sb_segment_count % 2) == 0) // if even
1020 if ((state->fe.dtv_property_cache.inversion ^ i) == 0) {
1030 if ((state->fe.dtv_property_cache.delivery_system == SYS_ISDBT) && (state->fe.dtv_property_cache.isdbt_sb_mode == 1)
1032 (((state->fe.dtv_property_cache.isdbt_sb_segment_count % 2)
1033 && (state->fe.dtv_property_cache.isdbt_sb_segment_idx ==
1034 ((state->fe.dtv_property_cache.isdbt_sb_segment_count / 2) + 1)))
1035 || (((state->fe.dtv_property_cache.isdbt_sb_segment_count % 2) == 0)
1036 && (state->fe.dtv_property_cache.isdbt_sb_segment_idx == (state->fe.dtv_property_cache.isdbt_sb_segment_count / 2)))
1037 || (((state->fe.dtv_property_cache.isdbt_sb_segment_count % 2) == 0)
1038 && (state->fe.dtv_property_cache.isdbt_sb_segment_idx ==
1039 ((state->fe.dtv_property_cache.isdbt_sb_segment_count / 2) + 1)))
1044 if ((state->fe.dtv_property_cache.inversion ^ i) == 0)
1051 if (state->fe.dtv_property_cache.isdbt_sb_segment_count % 2) // if odd
1052 sub_channel = ((state->fe.dtv_property_cache.isdbt_sb_subchannel + (3 * seg_offset) + 1) % 41) / 3;
1054 sub_channel = ((state->fe.dtv_property_cache.isdbt_sb_subchannel + (3 * seg_offset)) % 41) / 3;
1057 if (state->fe.dtv_property_cache.transmission_mode == TRANSMISSION_MODE_2K
1058 || state->fe.dtv_property_cache.transmission_mode == TRANSMISSION_MODE_4K) {
1066 switch (state->fe.dtv_property_cache.transmission_mode) {
1212 } else { // if not state->fe.dtv_property_cache.isdbt_sb_mode
1221 switch (state->fe.dtv_property_cache.guard_interval) {
1241 switch (state->fe.dtv_property_cache.layer[i].modulation) {
1257 switch (state->fe.dtv_property_cache.layer[i].fec) {
1276 if ((state->fe.dtv_property_cache.layer[i].interleaving > 0) &&
1277 ((state->fe.dtv_property_cache.layer[i].interleaving <= 3) ||
1278 (state->fe.dtv_property_cache.layer[i].interleaving == 4 && state->fe.dtv_property_cache.isdbt_sb_mode == 1))
1280 timeI = state->fe.dtv_property_cache.layer[i].interleaving;
1283 dib8000_write_word(state, 2 + i, (constellation << 10) | ((state->fe.dtv_property_cache.layer[i].segment_count & 0xf) << 6) |
1285 if (state->fe.dtv_property_cache.layer[i].segment_count > 0) {
1289 if (state->fe.dtv_property_cache.layer[i].modulation == QAM_16 ||
1290 state->fe.dtv_property_cache.layer[i].modulation == QAM_64)
1291 max_constellation = state->fe.dtv_property_cache.layer[i].modulation;
1294 if (state->fe.dtv_property_cache.layer[i].modulation == QAM_64)
1295 max_constellation = state->fe.dtv_property_cache.layer[i].modulation;
1306 ((state->fe.dtv_property_cache.isdbt_partial_reception & 1) << 5) | ((state->fe.dtv_property_cache.
1309 dprintk("mode = %d ; guard = %d", mode, state->fe.dtv_property_cache.guard_interval);
1313 if (state->fe.dtv_property_cache.isdbt_partial_reception) {
1314 seg_diff_mask = (state->fe.dtv_property_cache.layer[0].modulation == DQPSK) << permu_seg[0];
1317 (state->fe.dtv_property_cache.layer[i].modulation == DQPSK) * state->fe.dtv_property_cache.layer[i].segment_count;
1323 (state->fe.dtv_property_cache.layer[i].modulation == DQPSK) * state->fe.dtv_property_cache.layer[i].segment_count;
1330 dib8000_set_diversity_in(&state->fe, state->diversity_onoff);
1332 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1) { // ISDB-Tsb
1333 if (state->fe.dtv_property_cache.isdbt_partial_reception == 1) // 3-segments
1343 if ((seg_diff_mask) || (state->fe.dtv_property_cache.isdbt_sb_mode))
1355 // dib8000_write_word(state, 351, (state->fe.dtv_property_cache.isdbt_sb_mode << 8) | (13 << 4) | 5 );
1358 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1) {
1359 switch (state->fe.dtv_property_cache.transmission_mode) {
1361 if (state->fe.dtv_property_cache.isdbt_partial_reception == 0) { // 1-seg
1362 if (state->fe.dtv_property_cache.layer[0].modulation == DQPSK) // DQPSK
1367 if (state->fe.dtv_property_cache.layer[0].modulation == DQPSK) { // DQPSK on central segment
1368 if (state->fe.dtv_property_cache.layer[1].modulation == DQPSK) // DQPSK on external segments
1373 if (state->fe.dtv_property_cache.layer[1].modulation == DQPSK) // DQPSK on external segments
1382 if (state->fe.dtv_property_cache.isdbt_partial_reception == 0) { // 1-seg
1383 if (state->fe.dtv_property_cache.layer[0].modulation == DQPSK) // DQPSK
1388 if (state->fe.dtv_property_cache.layer[0].modulation == DQPSK) { // DQPSK on central segment
1389 if (state->fe.dtv_property_cache.layer[1].modulation == DQPSK) { // DQPSK on external segments
1395 if (state->fe.dtv_property_cache.layer[1].modulation == DQPSK) { // DQPSK on external segments
1406 if (state->fe.dtv_property_cache.isdbt_partial_reception == 0) { // 1-seg
1407 if (state->fe.dtv_property_cache.layer[0].modulation == DQPSK) // DQPSK
1412 if (state->fe.dtv_property_cache.layer[0].modulation == DQPSK) { // DQPSK on central segment
1413 if (state->fe.dtv_property_cache.layer[1].modulation == DQPSK) { // DQPSK on external segments
1419 if (state->fe.dtv_property_cache.layer[1].modulation == DQPSK) { // DQPSK on external segments
1433 (state->fe.dtv_property_cache.isdbt_sb_mode << 9) | (state->fe.dtv_property_cache.isdbt_sb_mode << 8) | (13 << 4) | 5);
1437 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1) { // Sound Broadcasting mode - use both TMCC and AC pilots
1442 (4 << 12) | (0 << 11) | (63 << 5) | (0x3 << 3) | ((~state->fe.dtv_property_cache.isdbt_partial_reception & 1) << 2)
1448 if (state->fe.dtv_property_cache.isdbt_partial_reception == 0) { // Sound Broadcasting mode 1 seg
1512 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1 && state->fe.dtv_property_cache.isdbt_partial_reception == 0) // 1-seg
1526 if ((!state->fe.dtv_property_cache.isdbt_sb_mode) && (state->cfg.pll->ifreq == 0))
1541 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1) {
1542 if (state->fe.dtv_property_cache.isdbt_partial_reception == 0) // Sound Broadcasting mode 1 seg
1554 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1) {
1555 if (state->fe.dtv_property_cache.isdbt_partial_reception == 0) // Sound Broadcasting mode 1 seg
1567 switch (state->fe.dtv_property_cache.transmission_mode) {
1627 if (state->fe.dtv_property_cache.isdbt_sb_mode) {
1628 if (state->fe.dtv_property_cache.isdbt_partial_reception == 1) // 3-segments
1635 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1 || state->isdbt_cfg_loaded == 0)
1651 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1) { // ISDB-Tsb
1654 if (state->fe.dtv_property_cache.isdbt_partial_reception == 0 // 1-segment
1655 && state->fe.dtv_property_cache.transmission_mode == TRANSMISSION_MODE_2K) {
1667 (((state->fe.dtv_property_cache.layer[i].modulation == DQPSK) * 4 + 1) * state->fe.dtv_property_cache.layer[i].segment_count);
1681 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1)
1688 static int dib8000_autosearch_start(struct dvb_frontend *fe)
1692 struct dib8000_state *state = fe->demodulator_priv;
1696 state->fe.dtv_property_cache.inversion = 0;
1697 if (!state->fe.dtv_property_cache.isdbt_sb_mode)
1698 state->fe.dtv_property_cache.layer[0].segment_count = 13;
1699 state->fe.dtv_property_cache.layer[0].modulation = QAM_64;
1700 state->fe.dtv_property_cache.layer[0].fec = FEC_2_3;
1701 state->fe.dtv_property_cache.layer[0].interleaving = 0;
1704 if (state->fe.dtv_property_cache.isdbt_sb_mode) {
1705 state->fe.dtv_property_cache.transmission_mode = TRANSMISSION_MODE_8K;
1706 state->fe.dtv_property_cache.guard_interval = GUARD_INTERVAL_1_8;
1710 if (state->fe.dtv_property_cache.guard_interval == GUARD_INTERVAL_AUTO) {
1711 if (state->fe.dtv_property_cache.transmission_mode == TRANSMISSION_MODE_AUTO) {
1717 if (state->fe.dtv_property_cache.transmission_mode == TRANSMISSION_MODE_AUTO) {
1724 if (state->fe.dtv_property_cache.transmission_mode == TRANSMISSION_MODE_AUTO)
1725 state->fe.dtv_property_cache.transmission_mode = TRANSMISSION_MODE_8K;
1726 if (state->fe.dtv_property_cache.guard_interval == GUARD_INTERVAL_AUTO)
1727 state->fe.dtv_property_cache.guard_interval = GUARD_INTERVAL_1_8;
1761 static int dib8000_autosearch_irq(struct dvb_frontend *fe)
1763 struct dib8000_state *state = fe->demodulator_priv;
1779 static int dib8000_tune(struct dvb_frontend *fe)
1781 struct dib8000_state *state = fe->demodulator_priv;
1789 dib8000_set_bandwidth(state, state->fe.dtv_property_cache.bandwidth_hz / 1000);
1801 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1) {
1802 if (state->fe.dtv_property_cache.isdbt_partial_reception == 0) // Sound Broadcasting mode 1 seg
1810 if (state->fe.dtv_property_cache.isdbt_sb_mode == 1) {
1811 if (state->fe.dtv_property_cache.isdbt_partial_reception == 0) { // Sound Broadcasting mode 1 seg
1853 static int dib8000_wakeup(struct dvb_frontend *fe)
1855 struct dib8000_state *state = fe->demodulator_priv;
1865 static int dib8000_sleep(struct dvb_frontend *fe)
1867 struct dib8000_state *st = fe->demodulator_priv;
1878 enum frontend_tune_state dib8000_get_tune_state(struct dvb_frontend *fe)
1880 struct dib8000_state *state = fe->demodulator_priv;
1885 int dib8000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state)
1887 struct dib8000_state *state = fe->demodulator_priv;
1896 static int dib8000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_parameters *fep)
1898 struct dib8000_state *state = fe->demodulator_priv;
1901 fe->dtv_property_cache.bandwidth_hz = 6000000;
1903 fe->dtv_property_cache.isdbt_sb_mode = dib8000_read_word(state, 508) & 0x1;
1906 fe->dtv_property_cache.inversion = (val & 0x40) >> 6;
1909 fe->dtv_property_cache.transmission_mode = TRANSMISSION_MODE_2K;
1913 fe->dtv_property_cache.transmission_mode = TRANSMISSION_MODE_8K;
1919 fe->dtv_property_cache.guard_interval = GUARD_INTERVAL_1_32;
1923 fe->dtv_property_cache.guard_interval = GUARD_INTERVAL_1_16;
1928 fe->dtv_property_cache.guard_interval = GUARD_INTERVAL_1_8;
1932 fe->dtv_property_cache.guard_interval = GUARD_INTERVAL_1_4;
1937 fe->dtv_property_cache.isdbt_partial_reception = val & 1;
1938 dprintk("dib8000_get_frontend : partial_reception = %d ", fe->dtv_property_cache.isdbt_partial_reception);
1942 fe->dtv_property_cache.layer[i].segment_count = val & 0x0F;
1943 dprintk("dib8000_get_frontend : Layer %d segments = %d ", i, fe->dtv_property_cache.layer[i].segment_count);
1946 fe->dtv_property_cache.layer[i].interleaving = val & 0x3;
1947 dprintk("dib8000_get_frontend : Layer %d time_intlv = %d ", i, fe->dtv_property_cache.layer[i].interleaving);
1952 fe->dtv_property_cache.layer[i].fec = FEC_1_2;
1956 fe->dtv_property_cache.layer[i].fec = FEC_2_3;
1960 fe->dtv_property_cache.layer[i].fec = FEC_3_4;
1964 fe->dtv_property_cache.layer[i].fec = FEC_5_6;
1968 fe->dtv_property_cache.layer[i].fec = FEC_7_8;
1977 fe->dtv_property_cache.layer[i].modulation = DQPSK;
1980 fe->dtv_property_cache.layer[i].modulation = QPSK;
1984 fe->dtv_property_cache.layer[i].modulation = QAM_16;
1990 fe->dtv_property_cache.layer[i].modulation = QAM_64;
1997 static int dib8000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_parameters *fep)
1999 struct dib8000_state *state = fe->demodulator_priv;
2002 fe->dtv_property_cache.delivery_system = SYS_ISDBT;
2006 if (fe->ops.tuner_ops.set_params)
2007 fe->ops.tuner_ops.set_params(fe, fep);
2012 time = dib8000_agc_startup(fe);
2019 if (state->fe.dtv_property_cache.frequency == 0) {
2024 if (state->fe.dtv_property_cache.bandwidth_hz == 0) {
2026 state->fe.dtv_property_cache.bandwidth_hz = 6000000;
2031 if ((state->fe.dtv_property_cache.delivery_system != SYS_ISDBT) ||
2032 (state->fe.dtv_property_cache.inversion == INVERSION_AUTO) ||
2033 (state->fe.dtv_property_cache.transmission_mode == TRANSMISSION_MODE_AUTO) ||
2034 (state->fe.dtv_property_cache.guard_interval == GUARD_INTERVAL_AUTO) ||
2035 (((state->fe.dtv_property_cache.isdbt_layer_enabled & (1 << 0)) != 0) &&
2036 (state->fe.dtv_property_cache.layer[0].segment_count != 0xff) &&
2037 (state->fe.dtv_property_cache.layer[0].segment_count != 0) &&
2038 ((state->fe.dtv_property_cache.layer[0].modulation == QAM_AUTO) ||
2039 (state->fe.dtv_property_cache.layer[0].fec == FEC_AUTO))) ||
2040 (((state->fe.dtv_property_cache.isdbt_layer_enabled & (1 << 1)) != 0) &&
2041 (state->fe.dtv_property_cache.layer[1].segment_count != 0xff) &&
2042 (state->fe.dtv_property_cache.layer[1].segment_count != 0) &&
2043 ((state->fe.dtv_property_cache.layer[1].modulation == QAM_AUTO) ||
2044 (state->fe.dtv_property_cache.layer[1].fec == FEC_AUTO))) ||
2045 (((state->fe.dtv_property_cache.isdbt_layer_enabled & (1 << 2)) != 0) &&
2046 (state->fe.dtv_property_cache.layer[2].segment_count != 0xff) &&
2047 (state->fe.dtv_property_cache.layer[2].segment_count != 0) &&
2048 ((state->fe.dtv_property_cache.layer[2].modulation == QAM_AUTO) ||
2049 (state->fe.dtv_property_cache.layer[2].fec == FEC_AUTO))) ||
2050 (((state->fe.dtv_property_cache.layer[0].segment_count == 0) ||
2051 ((state->fe.dtv_property_cache.isdbt_layer_enabled & (1 << 0)) == 0)) &&
2052 ((state->fe.dtv_property_cache.layer[1].segment_count == 0) ||
2053 ((state->fe.dtv_property_cache.isdbt_layer_enabled & (2 << 0)) == 0)) &&
2054 ((state->fe.dtv_property_cache.layer[2].segment_count == 0) || ((state->fe.dtv_property_cache.isdbt_layer_enabled & (3 << 0)) == 0)))) {
2057 dib8000_set_bandwidth(state, fe->dtv_property_cache.bandwidth_hz / 1000);
2058 dib8000_autosearch_start(fe);
2061 found = dib8000_autosearch_irq(fe);
2069 dib8000_get_frontend(fe, fep);
2072 ret = dib8000_tune(fe);
2080 static int dib8000_read_status(struct dvb_frontend *fe, fe_status_t * stat)
2082 struct dib8000_state *state = fe->demodulator_priv;
2116 static int dib8000_read_ber(struct dvb_frontend *fe, u32 * ber)
2118 struct dib8000_state *state = fe->demodulator_priv;
2123 static int dib8000_read_unc_blocks(struct dvb_frontend *fe, u32 * unc)
2125 struct dib8000_state *state = fe->demodulator_priv;
2130 static int dib8000_read_signal_strength(struct dvb_frontend *fe, u16 * strength)
2132 struct dib8000_state *state = fe->demodulator_priv;
2138 static int dib8000_read_snr(struct dvb_frontend *fe, u16 * snr)
2140 struct dib8000_state *state = fe->demodulator_priv;
2218 static int dib8000_fe_get_tune_settings(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *tune)
2226 static void dib8000_release(struct dvb_frontend *fe)
2228 struct dib8000_state *st = fe->demodulator_priv;
2233 struct i2c_adapter *dib8000_get_i2c_master(struct dvb_frontend *fe, enum dibx000_i2c_interface intf, int gating)
2235 struct dib8000_state *st = fe->demodulator_priv;
2241 int dib8000_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff)
2243 struct dib8000_state *st = fe->demodulator_priv;
2252 int dib8000_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff)
2254 struct dib8000_state *st = fe->demodulator_priv;
2292 struct dvb_frontend *fe;
2313 fe = &state->fe;
2314 fe->demodulator_priv = state;
2315 memcpy(&state->fe.ops, &dib8000_ops, sizeof(struct dvb_frontend_ops));
2324 dib8000_reset(fe);
2328 return fe;