Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: dvb_frontend_recover not working



Klaus Schmidinger wrote:
> I was looking into why the driver doesn't recover after a loss
> of signal (like when pulling the antenna cable for a few seconds)
> and found that apparently (at least with DVB-S) it starts a
> dvb_frontend_recover() sequence, but aquires a lock at a completely
> different frequency, which is some 16MHz off the original transponder.
> 
> This is not surprising, because the fe->lnb_drift takes on values
> of up to +/-15462 or so, which lets it run into the next transponder
> at the same polarization as the current one. So no wonder there is no
> more picture then, because the PIDs may be totally different on different
> transponders.
> 
> I therefore limited the range of fe->lnb_drift in dvb_frontend_recover()
> to some 8MHz,

Well, it seems the calculation of the stepsize is wrong. The idea
was to limit the search to the range covered by the bandwidth of
the transponder. But given the variable name "lnb_drift", this
approach is wrong right from the start, because the drift (plus an
offset due to unprecise manufacturing/calibration) is independent
from the bandwidth/symbolrate. We might be better off using a
fixed value for stepsize so the scan covers, say, +/-4 MHz.

> but then it didn't lock on to any transponder any more.
> This is what puzzles me, because the original transponder was perfectly
> locked on with fe->lnb_drift==0, and that value is the first one that
> gets tried in dvb_frontend_recover(). And since there can (due to the
> limitation to 8MHz) be no more other transponder it might lock on to
> by mistake, I don't understand why it doesn't lock on to the original
> transponder any more. It just loops through the original frequency
> +/-8MHz in 32 steps over and over again.

There's an #if 0'ed part in dvb_frontend_recover(). I guess
some frontends need the call to:
  dvb_frontend_internal_ioctl (&fe->frontend, FE_INIT, NULL);

Maybe Holger knows more.

Anyway, with my ves1820 dvb-c card it works as is.

Johannes


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index