diff options
Diffstat (limited to 'linux/drivers')
-rw-r--r-- | linux/drivers/media/dvb/dvb-core/dvb_frontend.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c index b8e117571..fd3fe99b9 100644 --- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c @@ -527,10 +527,14 @@ static int dvb_frontend_thread (void *data) } // get the frontend status - dvb_frontend_internal_ioctl (&fe->frontend, FE_READ_STATUS, &s); - if (s != fe->status) - dvb_frontend_add_event (fe, s); - + if (fe->state & FESTATE_RETUNE) { + s = 0; + } else { + dvb_frontend_internal_ioctl (&fe->frontend, FE_READ_STATUS, &s); + if (s != fe->status) { + dvb_frontend_add_event (fe, s); + } + } // if we're not tuned, and we have a lock, move to the TUNED state if ((fe->state & FESTATE_WAITFORLOCK) && (s & FE_HAS_LOCK)) { update_delay(&quality, &delay, fe->min_delay, s & FE_HAS_LOCK); |