From 8c5f6b349e4a7c5544957aa75f2c3a5754928ea6 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Mon, 4 Jun 2012 19:18:16 -0300 Subject: [PATCH] libdvbv5: Fix tuning The previous patch broke DVB tuning. fix it. Signed-off-by: Mauro Carvalho Chehab --- lib/libdvbv5/dvb-fe.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/lib/libdvbv5/dvb-fe.c b/lib/libdvbv5/dvb-fe.c index b46d83b..9078893 100644 --- a/lib/libdvbv5/dvb-fe.c +++ b/lib/libdvbv5/dvb-fe.c @@ -312,26 +312,25 @@ int dvb_set_sys(struct dvb_v5_fe_parms *parms, struct dtv_properties prop; int rc; - if (sys == parms->current_sys) - return 0; + if (sys != parms->current_sys) { + /* Disable LNBf power */ + if (is_satellite(parms->current_sys) && + !is_satellite(sys)) + dvb_fe_sec_voltage(parms, 0, 0); - /* Disable LNBf power */ - if (is_satellite(parms->current_sys) && - !is_satellite(sys)) - dvb_fe_sec_voltage(parms, 0, 0); - - /* Can't change standard with the legacy FE support */ - if (parms->legacy_fe) - return EINVAL; + /* Can't change standard with the legacy FE support */ + if (parms->legacy_fe) + return EINVAL; - dvb_prop[0].cmd = DTV_DELIVERY_SYSTEM; - dvb_prop[0].u.data = sys; - prop.num = 1; - prop.props = dvb_prop; + dvb_prop[0].cmd = DTV_DELIVERY_SYSTEM; + dvb_prop[0].u.data = sys; + prop.num = 1; + prop.props = dvb_prop; - if (ioctl(parms->fd, FE_SET_PROPERTY, &prop) == -1) { - dvb_perror("Set delivery system"); - return errno; + if (ioctl(parms->fd, FE_SET_PROPERTY, &prop) == -1) { + dvb_perror("Set delivery system"); + return errno; + } } rc = dvb_add_parms_for_sys(parms->dvb_prop, -- 2.7.4