( linuxdvb_diseqc_t *ld, dvb_mux_t *lm, linuxdvb_satconf_ele_t *ls, int fd )
{
int pol = linuxdvb_lnb_bandstack_pol((linuxdvb_lnb_t*)ld, lm);
- return linuxdvb_diseqc_set_volt(fd, pol);
+
+ /* en50494 does not use the voltage tune. this is happend in the switch */
+ if (ls->lse_en50494)
+ return 0;
+
+ if (ls->lse_parent->ls_diseqc_full || ls->lse_parent->ls_last_pol != pol + 1) {
+ ls->lse_parent->ls_last_pol = pol + 1;
+ return linuxdvb_diseqc_set_volt(fd, pol);
+ }
+ return 0;
}
/* **************************************************************************
( linuxdvb_satconf_t *ls )
{
gtimer_disarm(&ls->ls_diseqc_timer);
- if (ls->ls_frontend && ls->ls_lnb_poweroff)
+ if (ls->ls_frontend && ls->ls_lnb_poweroff) {
linuxdvb_diseqc_set_volt(
((linuxdvb_frontend_t *)ls->ls_frontend)->lfe_fe_fd, -1);
+ linuxdvb_satconf_reset(ls);
+ }
}
int