diff options
author | hschang <chang@dev3> | 2016-03-04 02:17:54 (GMT) |
---|---|---|
committer | hschang <chang@dev3> | 2016-03-04 05:22:35 (GMT) |
commit | 927892fd15874451b09b5d5c280d5f4b335ea383 (patch) | |
tree | d1708f6c931253c7ce3616ba6a279c884e786377 /lib/dvb | |
parent | 685c5b7ac4501dbb62a9bb3f526da558fd06da39 (diff) |
[Frontend] Fix lock fail for linked tuners.
Diffstat (limited to 'lib/dvb')
-rwxr-xr-x | lib/dvb/frontend.cpp | 2 | ||||
-rw-r--r-- | lib/dvb/sec.cpp | 2 |
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); |