From: hschang Date: Fri, 4 Mar 2016 02:17:54 +0000 (+0900) Subject: [Frontend] Fix lock fail for linked tuners. X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=commitdiff_plain;h=927892fd15874451b09b5d5c280d5f4b335ea383 [Frontend] Fix lock fail for linked tuners. --- 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);