diff options
Diffstat (limited to 'linux/drivers/media/dvb/dvb-core')
-rw-r--r-- | linux/drivers/media/dvb/dvb-core/dvb_frontend.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c index 7f63e26cd..34a337bf3 100644 --- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c @@ -483,11 +483,14 @@ int dvb_frontend_thread (void *data) fe->lost_sync_count = 0; } else { fe->lost_sync_count++; - if (!(fe->info->caps & FE_CAN_CLEAN_SETUP)) - if (fe->lost_sync_count < 10) - continue; - dvb_frontend_recover (fe); - delay = HZ/5; + if (!(fe->info->caps & FE_CAN_RECOVER)) { + if (!(fe->info->caps & FE_CAN_CLEAN_SETUP)) { + if (fe->lost_sync_count < 10) + continue; + } + dvb_frontend_recover (fe); + delay = HZ/5; + } if (jiffies - fe->lost_sync_jiffies > TIMEOUT) { s |= FE_TIMEDOUT; if ((fe->status & FE_TIMEDOUT) == 0) |