<dl>
<dt><b>Power Save</b></dt>
<dd>If enabled, allows the tuner to go to sleep when idle.</dd>
+<p>
+ <dt><b>Tune Before DiseqC</b></dt>
+ <dd>If set, one tune request (setup) is proceed before the DiseqC
+ sequence (voltage, tone settings). Some linux drivers require this
+ procedure.</dd>
<p>
<dt><b>Tune Repeats</b></dt>
<dd>If set, the tune requests are repeated using this number. Zero means
.ic_get_title = linuxdvb_satconf_class_get_title,
.ic_save = linuxdvb_satconf_class_save,
.ic_properties = (const property_t[]) {
+ {
+ .type = PT_BOOL,
+ .id = "early_tune",
+ .name = "Tune Before DiseqC",
+ .off = offsetof(linuxdvb_satconf_t, ls_early_tune),
+ .opts = PO_ADVANCED,
+ },
{
.type = PT_INT,
.id = "diseqc_repeats",
f = lse->lse_lnb->lnb_freq(lse->lse_lnb, lm);
if (f == (uint32_t)-1)
return SM_CODE_TUNING_FAILED;
-#if 0
- // Note: unfortunately, this test also "delays" the valid
- // tune request, so it's disabled now until we create
- // own parameter validator
- if (!lse->lse_en50494) {
+
+ if (ls->ls_early_tune && !lse->lse_en50494) {
r = linuxdvb_frontend_tune0(lfe, mmi, f);
if (r) return r;
} else {
r = linuxdvb_frontend_clear(lfe);
if (r) return r;
}
-#else
- /* Clear the frontend settings, open frontend fd */
- r = linuxdvb_frontend_clear(lfe);
- if (r) return r;
-#endif
/* Diseqc */
ls->ls_mmi = mmi;
ls->ls_type = lst->type;
TAILQ_INIT(&ls->ls_elements);
+ ls->ls_early_tune = 1;
ls->ls_max_rotor_move = 120;
/* Create node */