From 3c5d40916da7bd4988550abe55dcf3c21d206d12 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 19 Dec 2014 16:35:57 +0100 Subject: [PATCH] linuxdvb satconf: handle correctly LNB power off --- src/input/mpegts/linuxdvb/linuxdvb_lnb.c | 11 ++++++++++- src/input/mpegts/linuxdvb/linuxdvb_satconf.c | 4 +++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/input/mpegts/linuxdvb/linuxdvb_lnb.c b/src/input/mpegts/linuxdvb/linuxdvb_lnb.c index d6a63721..c91bdebc 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_lnb.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_lnb.c @@ -169,7 +169,16 @@ linuxdvb_lnb_bandstack_tune ( 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; } /* ************************************************************************** diff --git a/src/input/mpegts/linuxdvb/linuxdvb_satconf.c b/src/input/mpegts/linuxdvb/linuxdvb_satconf.c index 9a68b2cc..a785124b 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_satconf.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_satconf.c @@ -656,9 +656,11 @@ linuxdvb_satconf_post_stop_mux ( 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