*/
static u32 stb0899_set_srate(struct stb0899_state *state, u32 master_clk, u32 srate)
{
- u32 tmp, tmp_up, srate_up;
- u8 sfr_up[3], sfr[3];
+ u32 tmp;
+ u8 sfr[3];
-// srate_up = srate;
dprintk(state->verbose, FE_DEBUG, 1, "-->");
/*
* in order to have the maximum precision, the symbol rate entered into
* the chip is computed as the closest value of the "true value".
* In this purpose, the symbol rate value is rounded (1 is added on the bit
* below the LSB )
- */
-// srate_up += (srate_up * 3) / 100;
-
- /*
+ *
* srate = (SFR * master_clk) >> 20
* <=>
* SFR = srate << 20 / master_clk
* stored as 20 bit number with an offset of 4 bit:
* sfr = SFR << 4;
*/
-// tmp_up = stb0899_do_div((((u64)srate_up) << 21) + master_clk, 2 * master_clk);
-// tmp_up <<= 4;
tmp = stb0899_do_div((((u64)srate) << 21) + master_clk, 2 * master_clk);
tmp <<= 4;
-// sfr_up[0] = tmp_up >> 16;
-// sfr_up[1] = tmp_up >> 8;
-// sfr_up[2] = tmp_up;
-
sfr[0] = tmp >> 16;
sfr[1] = tmp >> 8;
sfr[2] = tmp;
-// stb0899_write_regs(state, STB0899_SFRUPH, sfr_up, 3);
stb0899_write_regs(state, STB0899_SFRH, sfr, 3);
return srate;
}
-/*
- * stb0899_calc_loop_time
- * Compute the amount of time needed by the timing loop to lock
- * SymbolRate: Symbol rate
- * return: timing loop time constant (ms)
- */
-static long stb0899_calc_loop_time(long srate)
-{
- if (srate > 0)
- return (100000 / (srate / 1000));
- else
- return 0;
-}
-
/*
* stb0899_calc_derot_time
* Compute the amount of time needed by the derotator to lock
u8 reg;
s8 timing;
- msleep(internal->t_timing);
+ msleep(internal->t_derot);
stb0899_write_reg(state, STB0899_RTF, 0xf2);
reg = stb0899_read_reg(state, STB0899_TLIR);
/* Initial calculations */
internal->derot_step = internal->derot_percent * (params->srate / 1000L) / internal->mclk; /* DerotStep/1000 * Fsymbol */
- internal->t_timing = stb0899_calc_loop_time(params->srate);
internal->t_derot = stb0899_calc_derot_time(params->srate);
internal->t_data = 500;
if (state->config->tuner_get_frequency)
state->config->tuner_get_frequency(&state->frontend, &internal->freq);
- msleep(internal->t_agc1 + internal->t_agc2 + internal->t_timing); /* AGC1, AGC2 and timing loop */
+ msleep(internal->t_agc1 + internal->t_agc2 + internal->t_derot); /* AGC1, AGC2 and timing loop */
dprintk(state->verbose, FE_DEBUG, 1, "current derot freq=%d", internal->derot_freq);
internal->status = AGC1OK;