Lines Matching refs:internal

50 	struct stb0899_internal *internal = &state->internal;
55 return stb0899_calc_srate(internal->master_clk, sfr);
122 struct stb0899_internal *internal = &state->internal;
124 return (internal->srate + (internal->srate * internal->rolloff) / 100);
133 struct stb0899_internal *internal = &state->internal;
148 internal->sub_range = min(internal->srch_range, range);
150 internal->sub_range = 0;
152 internal->freq = params->freq;
153 internal->tuner_offst = 0L;
154 internal->sub_dir = 1;
160 * internal.Ttiming: time to wait for loop lock
164 struct stb0899_internal *internal = &state->internal;
169 msleep(internal->t_derot);
178 internal->status = ANALOGCARRIER;
181 internal->status = TIMINGOK;
185 internal->status = NOTIMING;
188 return internal->status;
197 struct stb0899_internal *internal = &state->internal;
204 internal->status = NOTIMING;
207 derot_limit = (internal->sub_range / 2L) / internal->mclk;
208 derot_step = (params->srate / 2L) / internal->mclk;
212 derot_freq += index * internal->direction * derot_step; /* next derot zig zag position */
218 STB0899_SETFIELD_VAL(CFRM, cfr[0], MSB(internal->inversion * derot_freq));
219 STB0899_SETFIELD_VAL(CFRL, cfr[1], LSB(internal->inversion * derot_freq));
222 internal->direction = -internal->direction; /* Change zigzag direction */
225 if (internal->status == TIMINGOK) {
227 internal->derot_freq = internal->inversion * MAKEWORD16(cfr[0], cfr[1]);
228 dprintk(state->verbose, FE_DEBUG, 1, "------->TIMING OK ! Derot Freq = %d", internal->derot_freq);
231 return internal->status;
240 struct stb0899_internal *internal = &state->internal;
243 msleep(internal->t_derot); /* wait for derotator ok */
252 internal->status = CARRIEROK;
255 internal->status = NOCARRIER;
259 return internal->status;
268 struct stb0899_internal *internal = &state->internal;
275 internal->status = NOCARRIER;
276 derot_limit = (internal->sub_range / 2L) / internal->mclk;
277 derot_freq = internal->derot_freq;
284 dprintk(state->verbose, FE_DEBUG, 1, "Derot Freq=%d, mclk=%d", derot_freq, internal->mclk);
288 derot_freq += index * internal->direction * internal->derot_step; /* next zig zag derotator position */
298 STB0899_SETFIELD_VAL(CFRM, cfr[0], MSB(internal->inversion * derot_freq));
299 STB0899_SETFIELD_VAL(CFRL, cfr[1], LSB(internal->inversion * derot_freq));
304 internal->direction = -internal->direction; /* Change zigzag direction */
305 } while ((internal->status != CARRIEROK) && next_loop);
307 if (internal->status == CARRIEROK) {
309 internal->derot_freq = internal->inversion * MAKEWORD16(cfr[0], cfr[1]);
310 dprintk(state->verbose, FE_DEBUG, 1, "----> CARRIER OK !, Derot Freq=%d", internal->derot_freq);
312 internal->derot_freq = last_derot_freq;
315 return internal->status;
324 struct stb0899_internal *internal = &state->internal;
330 internal->status = NODATA;
366 internal->status = DATAOK;
370 return internal->status;
384 struct stb0899_internal *internal = &state->internal;
387 derot_step = (params->srate / 4L) / internal->mclk;
388 derot_limit = (internal->sub_range / 2L) / internal->mclk;
389 derot_freq = internal->derot_freq;
392 if ((internal->status != CARRIEROK) || (stb0899_check_data(state) != DATAOK)) {
394 derot_freq += index * internal->direction * derot_step; /* next zig zag derotator position */
399 dprintk(state->verbose, FE_DEBUG, 1, "Derot freq=%d, mclk=%d", derot_freq, internal->mclk);
404 STB0899_SETFIELD_VAL(CFRM, cfr[0], MSB(internal->inversion * derot_freq));
405 STB0899_SETFIELD_VAL(CFRL, cfr[1], LSB(internal->inversion * derot_freq));
412 internal->direction = -internal->direction; /* change zig zag direction */
413 } while ((internal->status != DATAOK) && next_loop);
415 if (internal->status == DATAOK) {
421 internal->inversion = IQ_SWAP_ON;
423 internal->inversion = IQ_SWAP_OFF;
425 internal->derot_freq = internal->inversion * MAKEWORD16(cfr[0], cfr[1]);
426 dprintk(state->verbose, FE_DEBUG, 1, "------> DATAOK ! Derot Freq=%d", internal->derot_freq);
429 return internal->status;
438 struct stb0899_internal *internal = &state->internal;
443 range_offst = internal->srch_range / 2000;
444 tp_freq = internal->freq - (internal->derot_freq * internal->mclk) / 1000;
447 internal->status = RANGEOK;
450 internal->status = OUTOFRANGE;
454 return internal->status;
463 struct stb0899_internal *internal = &state->internal;
468 if (internal->sub_dir > 0) {
469 old_sub_range = internal->sub_range;
470 internal->sub_range = min((internal->srch_range / 2) -
471 (internal->tuner_offst + internal->sub_range / 2),
472 internal->sub_range);
474 if (internal->sub_range < 0)
475 internal->sub_range = 0;
477 internal->tuner_offst += (old_sub_range + internal->sub_range) / 2;
480 internal->freq = params->freq + (internal->sub_dir * internal->tuner_offst) / 1000;
481 internal->sub_dir = -internal->sub_dir;
492 struct stb0899_internal *internal = &state->internal;
511 internal->direction = 1;
513 stb0899_set_srate(state, internal->master_clk, params->srate);
553 internal->derot_percent, params->srate, internal->mclk);
556 internal->derot_step = internal->derot_percent * (params->srate / 1000L) / internal->mclk; /* DerotStep/1000 * Fsymbol */
557 internal->t_derot = stb0899_calc_derot_time(params->srate);
558 internal->t_data = 500;
588 internal->derot_freq = 0;
589 internal->status = NOAGC1;
597 state->config->tuner_set_frequency(&state->frontend, internal->freq);
600 state->config->tuner_get_frequency(&state->frontend, &internal->freq);
602 msleep(internal->t_agc1 + internal->t_agc2 + internal->t_derot); /* AGC1, AGC2 and timing loop */
603 dprintk(state->verbose, FE_DEBUG, 1, "current derot freq=%d", internal->derot_freq);
604 internal->status = AGC1OK;
618 if (internal->status == TIMINGOK) {
621 internal->derot_freq, internal->mclk);
626 internal->derot_freq, internal->mclk);
631 internal->derot_freq, internal->mclk);
636 internal->derot_freq, internal->mclk);
638 internal->freq = params->freq - ((internal->derot_freq * internal->mclk) / 1000);
640 internal->fecrate = STB0899_GETFIELD(VITCURPUN, reg);
642 "freq=%d, internal resultant freq=%d",
643 params->freq, internal->freq);
646 "internal puncture rate=%d",
647 internal->fecrate);
652 if (internal->status != RANGEOK)
655 } while (internal->sub_range && internal->status != RANGEOK);
661 if (internal->status == RANGEOK) {
671 switch (internal->fecrate) {
719 return internal->status;
728 struct stb0899_internal *internal = &state->internal;
740 STB0899_SETFIELD_VAL(FE_COARSE_TRK, uwp2, internal->av_frame_coarse);
741 STB0899_SETFIELD_VAL(FE_FINE_TRK, uwp2, internal->av_frame_fine);
789 struct stb0899_internal *internal = &state->internal;
795 dec_ratio = (internal->master_clk * 2) / (5 * internal->srate);
799 master_clk = internal->master_clk / 1000;
800 srate = internal->srate / 1000;
820 struct stb0899_internal *internal = &state->internal;
823 dec_ratio = (internal->master_clk * 2) / (5 * internal->srate);
826 master_clk = internal->master_clk / 1000; /* for integer Calculation*/
827 srate = internal->srate / 1000; /* for integer Calculation*/
839 struct stb0899_internal *internal = &state->internal;
846 dec_ratio = (internal->master_clk * 2) / (5 * internal->srate);
856 f_sym = internal->master_clk / ((decim * internal->srate) / 1000);
883 freq_adj = internal->srate / (internal->master_clk / 4096);
893 struct stb0899_internal *internal = &state->internal;
902 dec_ratio = (internal->master_clk * 2) / (5 * internal->srate);
908 K = (1 << config->btr_nco_bits) / (internal->master_clk / 1000);
909 K *= (internal->srate / 1000000) * decim; /*k=k 10^-8*/
969 struct stb0899_internal *internal = &state->internal;
981 if (internal->srate / 1000000 >= 15)
983 else if (internal->srate / 1000000 >= 10)
985 else if (internal->srate / 1000000 >= 5)
990 range = internal->srch_range / 1000000;
991 steps = (10 * range * (1 << 17)) / (step_size * (internal->srate / 1000000));
995 stb0899_dvbs2_set_carr_freq(state, internal->center_freq -
996 (internal->step_size * (internal->srate / 20000000)),
997 (internal->master_clk) / 1000000);
999 stb0899_dvbs2_set_carr_freq(state, internal->center_freq, (internal->master_clk) / 1000000);
1163 struct stb0899_internal *internal = &state->internal;
1169 if (((internal->master_clk / internal->srate) <= 4) && (modcod <= 11) && (pilots == 1)) {
1270 struct stb0899_internal *internal = &state->internal;
1285 intval1 = internal->master_clk / (1 << div1);
1288 rem1 = internal->master_clk % (1 << div1);
1304 struct stb0899_internal *internal = &state->internal;
1311 if (internal->srate <= 2000000) {
1314 } else if (internal->srate <= 5000000) {
1317 } else if (internal->srate <= 10000000) {
1320 } else if (internal->srate <= 15000000) {
1323 } else if (internal->srate <= 20000000) {
1326 } else if (internal->srate <= 25000000) {
1344 state->config->tuner_set_frequency(&state->frontend, internal->freq);
1346 state->config->tuner_get_frequency(&state->frontend, &internal->freq);
1365 switch (internal->inversion) {
1377 internal->status = stb0899_dvbs2_get_dmd_status(state, searchTime);
1379 if (internal->status == DVBS2_DEMOD_LOCK) {
1383 internal->status = stb0899_dvbs2_get_fec_status(state, FecLockTime);
1386 while ((internal->status != DVBS2_FEC_LOCK) && (i < 3)) {
1395 internal->status = stb0899_dvbs2_get_fec_status(state, searchTime);
1400 if (internal->status != DVBS2_FEC_LOCK) {
1410 internal->status = stb0899_dvbs2_get_dmd_status(state, searchTime);
1411 if (internal->status == DVBS2_DEMOD_LOCK) {
1414 internal->status = stb0899_dvbs2_get_fec_status(state, FecLockTime);
1416 while ((internal->status != DVBS2_FEC_LOCK) && (i < 3)) {
1426 internal->status = stb0899_dvbs2_get_fec_status(state, searchTime);
1435 if (internal->status == DVBS2_FEC_LOCK) {
1441 if ((((10 * internal->master_clk) / (internal->srate / 10)) <= 410) &&
1447 internal->status = stb0899_dvbs2_get_fec_status(state, FecLockTime);
1450 while ((internal->status != DVBS2_FEC_LOCK) && (i < 3)) {
1458 internal->status = stb0899_dvbs2_get_fec_status(state, FecLockTime);
1463 if ((((10 * internal->master_clk) / (internal->srate / 10)) <= 410) &&
1484 offsetfreq *= (internal->master_clk / 1000000);
1489 internal->inversion = IQ_SWAP_ON;
1491 internal->inversion = IQ_SWAP_OFF;
1493 internal->freq = internal->freq + offsetfreq;
1494 internal->srate = stb0899_dvbs2_get_srate(state);
1497 internal->modcod = STB0899_GETFIELD(UWP_DECODE_MOD, reg) >> 2;
1498 internal->pilots = STB0899_GETFIELD(UWP_DECODE_MOD, reg) & 0x01;
1499 internal->frame_length = (STB0899_GETFIELD(UWP_DECODE_MOD, reg) >> 1) & 0x01;
1506 if (INRANGE(STB0899_QPSK_12, internal->modcod, STB0899_QPSK_23))
1521 return internal->status;