Hi,
the attached patch introduces some timeouts while the device is tuning and when it looses the lock:
DISEQC_REPEAT_TIMEOUT (500 ms) is used to repeat the DiSEqC signalling in case the where a multiswitch receives at first a malformed message and therefore doesn't switch.
TUNE_TO_RETUNE_TIMEOUT (3000 ms) is used to instruct the device to start the tuning operation once again in case the above DiSEqC signalling doesn't work.
LOST_LOCK_TO_RETUNE_TIMEOUT (500 ms) lets the device retune after a LOCKED to NOT LOCKED transition, probably under bad reception conditions.
Please give the patch a try and report success or failure.
Tests of special interest: - bad reception conditions (DVB-T) - steering dishes
Bye.