summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_frontend.c13
-rw-r--r--linux/drivers/media/dvb/frontends/alps_tdmb7.c2
-rw-r--r--linux/drivers/media/dvb/frontends/ves1820.c2
-rw-r--r--linux/include/linux/dvb/frontend.h5
4 files changed, 13 insertions, 9 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)
diff --git a/linux/drivers/media/dvb/frontends/alps_tdmb7.c b/linux/drivers/media/dvb/frontends/alps_tdmb7.c
index 1cc3377f6..65bccfed1 100644
--- a/linux/drivers/media/dvb/frontends/alps_tdmb7.c
+++ b/linux/drivers/media/dvb/frontends/alps_tdmb7.c
@@ -47,7 +47,7 @@ struct dvb_frontend_info tdmb7_info = {
caps: FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
- FE_CAN_CLEAN_SETUP
+ FE_CAN_CLEAN_SETUP | FE_CAN_RECOVER
};
diff --git a/linux/drivers/media/dvb/frontends/ves1820.c b/linux/drivers/media/dvb/frontends/ves1820.c
index 180de0861..e5cf4465c 100644
--- a/linux/drivers/media/dvb/frontends/ves1820.c
+++ b/linux/drivers/media/dvb/frontends/ves1820.c
@@ -89,7 +89,7 @@ struct dvb_frontend_info ves1820_info = {
.caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 |
FE_CAN_QAM_128 | FE_CAN_QAM_256 |
FE_CAN_FEC_AUTO | FE_CAN_INVERSION_AUTO |
- FE_CAN_CLEAN_SETUP
+ FE_CAN_CLEAN_SETUP | FE_CAN_RECOVER
};
diff --git a/linux/include/linux/dvb/frontend.h b/linux/include/linux/dvb/frontend.h
index 6a5f38c90..8b17d6c2e 100644
--- a/linux/include/linux/dvb/frontend.h
+++ b/linux/include/linux/dvb/frontend.h
@@ -63,8 +63,9 @@ typedef enum fe_caps {
FE_CAN_BANDWIDTH_AUTO = 0x40000,
FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
FE_CAN_HIERARCHY_AUTO = 0x100000,
- FE_CAN_MUTE_TS = 0x80000000,
- FE_CAN_CLEAN_SETUP = 0x40000000
+ FE_CAN_RECOVER = 0x20000000,
+ FE_CAN_CLEAN_SETUP = 0x40000000,
+ FE_CAN_MUTE_TS = 0x80000000
} fe_caps_t;