[oe-commits] org.oe.dreambox enigma: update rotor fix
tmbinc commit
openembedded-commits at lists.openembedded.org
Mon Aug 27 20:31:19 UTC 2007
enigma: update rotor fix
Author: tmbinc at openembedded.org
Branch: org.openembedded.dreambox
Revision: f089487fe8dd2f20ee7712168752f4d08cbe4303
ViewMTN: http://monotone.openembedded.org/revision.psp?id=f089487fe8dd2f20ee7712168752f4d08cbe4303
Files:
1
packages/enigma/enigma/rotor_fix.diff
Diffs:
#
# mt diff -r582aaec6e28817b5a25aa7f78b7bc6903e7d02d7 -rf089487fe8dd2f20ee7712168752f4d08cbe4303
#
#
#
# patch "packages/enigma/enigma/rotor_fix.diff"
# from [0b8b634beb7a73100723465c4f7d45868e754d9e]
# to [42ddcd43fb6af9f8f60636a750898acceee444f4]
#
============================================================
--- packages/enigma/enigma/rotor_fix.diff 0b8b634beb7a73100723465c4f7d45868e754d9e
+++ packages/enigma/enigma/rotor_fix.diff 42ddcd43fb6af9f8f60636a750898acceee444f4
@@ -1,6 +1,6 @@
-diff -Naur enigma/include/lib/dvb/frontend.h enigma_patched/include/lib/dvb/frontend.h
---- enigma/include/lib/dvb/frontend.h 2006-08-29 00:17:58.000000000 +0200
-+++ enigma_patched/include/lib/dvb/frontend.h 2006-08-29 00:27:09.000000000 +0200
+diff -Naur enigma_org/include/lib/dvb/frontend.h enigma/include/lib/dvb/frontend.h
+--- enigma_org/include/lib/dvb/frontend.h 2007-08-06 22:54:26.000000000 +0200
++++ enigma/include/lib/dvb/frontend.h 2007-08-06 22:47:44.000000000 +0200
@@ -74,41 +74,43 @@
class eFrontend: public Object
{
@@ -63,10 +63,10 @@ diff -Naur enigma/include/lib/dvb/fronte
///////////////////
#if HAVE_DVB_API_VERSION < 3
FrontendParameters front;
-diff -Naur enigma/lib/dvb/frontend.cpp enigma_patched/lib/dvb/frontend.cpp
---- enigma/lib/dvb/frontend.cpp 2006-08-28 09:38:41.000000000 +0200
-+++ enigma_patched/lib/dvb/frontend.cpp 2006-08-29 00:27:09.000000000 +0200
-@@ -28,6 +28,10 @@
+diff -Naur enigma_org/lib/dvb/frontend.cpp enigma/lib/dvb/frontend.cpp
+--- enigma_org/lib/dvb/frontend.cpp 2007-08-06 22:54:26.000000000 +0200
++++ enigma/lib/dvb/frontend.cpp 2007-08-06 22:55:48.000000000 +0200
+@@ -29,6 +29,10 @@
eFrontend* eFrontend::frontend;
@@ -77,7 +77,7 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
eFrontend::eFrontend(int type, const char *demod, const char *sec)
:type(type),
curRotorPos(10000), transponder(0), rotorTimer1(eApp),
-@@ -36,7 +40,8 @@
+@@ -37,7 +41,8 @@
timeout(eApp),
#endif
checkRotorLockTimer(eApp), checkLockTimer(eApp),
@@ -87,39 +87,19 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
{
CONNECT(rotorTimer1.timeout, eFrontend::RotorStartLoop );
CONNECT(rotorTimer2.timeout, eFrontend::RotorRunningLoop );
-@@ -831,7 +836,10 @@
- seq.voltage=SEC_VOLTAGE_OFF;
- break;
+@@ -112,6 +117,40 @@
}
-- return ::ioctl(secfd, SEC_SEND_SEQUENCE, &seq);
-+ int ret = ::ioctl(secfd, SEC_SEND_SEQUENCE, &seq);
-+ if ( ret < 0 )
-+ eDebug("SEC_SEND_SEQUENCE failed(%m)");
-+ return ret;
}
- #else
- int eFrontend::SendSequence( const eSecCmdSequence &seq )
-@@ -1032,10 +1040,7 @@
- // send DiSEqC Sequence ( normal diseqc switches )
- seq.continuousTone = eSecCmdSequence::TONE_OFF;
- if ( SendSequence(seq) < 0 )
-- {
-- eDebug("SendSequence failed (%m)");
- return -1;
-- }
- else if ( lnb->getDiSEqC().SeqRepeat ) // Sequence Repeat selected ?
- {
- usleep( 100000 ); // between seq repeats we wait 75ms
-@@ -1064,6 +1069,37 @@
- return 0;
- }
+#define STATIC 0
+#define DYNAMIC 1
+void setCurrentLimitingMode(int mode)
+{
+#if HAVE_DVB_API_VERSION < 3
-+ if ( eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM7020 )
++#warning FIXME setCurrentLimitingMode just for frontends with LNBP21
++ if ( eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM7020
++ || eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM500PLUS
++ || eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM600PVR )
+ {
+ int fd=::open("/dev/i2c/0", O_RDWR);
+ if ( fd >= 0 )
@@ -145,18 +125,57 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
+#endif
+}
+
- int eFrontend::RotorUseInputPower(eSecCmdSequence& seq, eLNB *lnb )
+ void eFrontend::checkRotorLock()
{
- #if HAVE_DVB_API_VERSION < 3
-@@ -1071,7 +1107,6 @@
+ if (!transponder)
+@@ -130,6 +166,7 @@
+ {
+ eDebug("[FE] rotor has stopped..");
+ curRotorPos=newPos;
++ setCurrentLimitingMode(DYNAMIC);
+ /*emit*/ tunedIn(transponder, 0);
+ // eDebug("!!!!!!!!!!!!!!!! TUNED IN OK 1 !!!!!!!!!!!!!!!!");
+ if ( !eDVB::getInstance()->getScanAPI() )
+@@ -832,7 +869,10 @@
+ seq.voltage=SEC_VOLTAGE_OFF;
+ break;
+ }
+- return ::ioctl(secfd, SEC_SEND_SEQUENCE, &seq);
++ int ret = ::ioctl(secfd, SEC_SEND_SEQUENCE, &seq);
++ if ( ret < 0 )
++ eDebug("SEC_SEND_SEQUENCE failed(%m)");
++ return ret;
+ }
#else
+ int eFrontend::SendSequence( const eSecCmdSequence &seq )
+@@ -1033,10 +1073,7 @@
+ // send DiSEqC Sequence ( normal diseqc switches )
+ seq.continuousTone = eSecCmdSequence::TONE_OFF;
+ if ( SendSequence(seq) < 0 )
+- {
+- eDebug("SendSequence failed (%m)");
+ return -1;
+- }
+ else if ( lnb->getDiSEqC().SeqRepeat ) // Sequence Repeat selected ?
+ {
+ usleep( 100000 ); // between seq repeats we wait 75ms
+@@ -1048,6 +1085,7 @@
+ usleep( 100000 ); // wait 100ms
+
+ // send DiSEqC Sequence (Rotor)
++ setCurrentLimitingMode(STATIC);
+ seq.commands=&commands[seq.numCommands]; // last command is rotor cmd... see above...
+ seq.numCommands=1; // only rotor cmd
+ seq.toneBurst = eSecCmdSequence::NONE;
+@@ -1072,7 +1110,6 @@
+ #else
dvb_diseqc_master_cmd *commands = seq.commands;
#endif
- idlePowerInput=0;
runningPowerInput=0;
int secTone = seq.continuousTone;
-@@ -1085,14 +1120,12 @@
+@@ -1086,14 +1123,12 @@
seq.continuousTone=SEC_TONE_OFF;
if ( SendSequence(seq) < 0 )
@@ -173,7 +192,7 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
}
if ( lastLNB != lnb )
-@@ -1102,15 +1135,48 @@
+@@ -1103,15 +1138,48 @@
}
else
{
@@ -229,7 +248,7 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
// send DiSEqC Sequence (Rotor)
seq.commands=&commands[seq.numCommands]; // last command is rotor cmd... see above...
-@@ -1121,7 +1187,7 @@
+@@ -1122,7 +1190,7 @@
seq.continuousTone=secTone;
if ( SendSequence(seq) < 0 )
{
@@ -238,7 +257,7 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
return -2;
}
// set rotor start timeout // 2 sek..
-@@ -1146,11 +1212,14 @@
+@@ -1147,11 +1215,14 @@
{
runningPowerInput = readInputPower();
if ( runningPowerInput < 0 )
@@ -254,7 +273,7 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
{
if ( (DeltaA & 0x200) == 0x200 )
{
-@@ -1181,17 +1250,44 @@
+@@ -1182,17 +1253,43 @@
{
timeval now;
gettimeofday(&now,0);
@@ -275,7 +294,6 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
+ curVoltage = voltage;
+#endif
+ voltageState = eSecCmdSequence::VOLTAGE_18;
-+ setCurrentLimitingMode(DYNAMIC);
+ }
+ }
+
@@ -300,7 +318,7 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
if ( abs( idlePowerInput-runningPowerInput ) <= (DeltaA&0xFF) ) // rotor stoped ?
{
-@@ -1215,7 +1311,8 @@
+@@ -1216,7 +1313,8 @@
{
if (type != eSystemInfo::feSatellite)
return;
@@ -310,7 +328,7 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
{
if ( voltage != eSecCmdSequence::VOLTAGE_18 )
#if HAVE_DVB_API_VERSION < 3
-@@ -1227,7 +1324,7 @@
+@@ -1228,7 +1326,7 @@
curVoltage = voltage;
#endif
}
@@ -319,7 +337,18 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
{
if ( voltage != eSecCmdSequence::VOLTAGE_13 )
#if HAVE_DVB_API_VERSION < 3
-@@ -2023,16 +2120,10 @@
+@@ -1466,7 +1564,10 @@
+ checkLockTimer.stop();
+
+ if ( curRotorPos > 11000 )
++ {
+ curRotorPos = 11000;
++ setCurrentLimitingMode(DYNAMIC);
++ }
+
+ // eDebug("ROTOR STOPPED 1");
+ /* emit */ s_RotorStopped();
+@@ -1886,16 +1987,10 @@
commands[cmdCount-1].u.diseqc.params[1]);
#endif
@@ -339,7 +368,7 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
seq.voltage = voltage;
lastRotorCmd=RotorCmd;
-@@ -2063,14 +2154,12 @@
+@@ -1926,14 +2021,12 @@
send:
seq.voltage=voltage;
if ( SendSequence(seq) < 0 )
@@ -356,7 +385,7 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
}
}
else if ( lastcsw != csw )
-@@ -2220,10 +2309,7 @@
+@@ -2083,10 +2176,7 @@
seq.continuousTone = eSecCmdSequence::TONE_OFF;
seq.toneBurst = eSecCmdSequence::NONE;
if (SendSequence(seq) < 0 )
@@ -367,10 +396,10 @@ diff -Naur enigma/lib/dvb/frontend.cpp e
}
if ( ioctl(fd, FE_SET_POWER_STATE, FE_POWER_OFF) < 0 )
eDebug("FE_SET_POWER_STATE failed (%m)");
-diff -Naur enigma/lib/system/info.cpp enigma_patched/lib/system/info.cpp
---- enigma/lib/system/info.cpp 2006-08-29 00:17:59.000000000 +0200
-+++ enigma_patched/lib/system/info.cpp 2006-08-29 00:27:09.000000000 +0200
-@@ -175,19 +175,8 @@
+diff -Naur enigma_org/lib/system/info.cpp enigma/lib/system/info.cpp
+--- enigma_org/lib/system/info.cpp 2007-08-06 22:54:26.000000000 +0200
++++ enigma/lib/system/info.cpp 2007-08-06 22:47:44.000000000 +0200
+@@ -177,19 +177,8 @@
midstr="9";
modelstr="DM7020";
cpustr="STB04500, 252MHz";
More information about the Openembedded-commits
mailing list