summaryrefslogtreecommitdiff
path: root/lib/dvb
diff options
context:
space:
mode:
authorhschang <chang@dev3>2016-03-04 02:17:54 (GMT)
committerhschang <chang@dev3>2016-03-04 05:22:35 (GMT)
commit927892fd15874451b09b5d5c280d5f4b335ea383 (patch)
treed1708f6c931253c7ce3616ba6a279c884e786377 /lib/dvb
parent685c5b7ac4501dbb62a9bb3f526da558fd06da39 (diff)
[Frontend] Fix lock fail for linked tuners.
Diffstat (limited to 'lib/dvb')
-rwxr-xr-xlib/dvb/frontend.cpp2
-rw-r--r--lib/dvb/sec.cpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index 7b95149..fa36653 100755
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -1878,12 +1878,14 @@ int eDVBFrontend::tuneLoopInt() // called by m_tuneTimer
tmp = prev->m_frontend->m_data[LINKED_PREV_PTR];
if (tmp == -1 && sec_fe != this && !prev->m_inuse) {
int state = sec_fe->m_state;
+#if 0 // Since following code causes lock fail for linked tuners in certain conditions, it does not apply.
// workaround to put the kernel frontend thread into idle state!
if (state != eDVBFrontend::stateIdle && state != stateClosed)
{
sec_fe->closeFrontend(true);
state = sec_fe->m_state;
}
+#endif
// sec_fe is closed... we must reopen it here..
if (state == stateClosed)
{
diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp
index 878a835..2affc65 100644
--- a/lib/dvb/sec.cpp
+++ b/lib/dvb/sec.cpp
@@ -340,6 +340,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
}
if (satposDependPtr != -1) // we dont need uncommitted switch and rotor cmds on second output of a rotor lnb
diseqc_mode = eDVBSatelliteDiseqcParameters::V1_0;
+#if 0 // Since following code causes lock fail for linked tuners in certain conditions, it does not apply.
else {
// in eDVBFrontend::tuneLoop we call closeFrontend and ->inc_use() in this this condition (to put the kernel frontend thread into idle state)
// so we must resend all diseqc stuff (voltage is disabled when the frontend is closed)
@@ -348,6 +349,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
if (!linked_fe->m_inuse && state != eDVBFrontend::stateIdle)
forceChanged = true;
}
+#endif
}
sec_fe->getData(eDVBFrontend::CSW, lastcsw);