- Old events aren't very useful, so clear them before adding
  the first event after an attempt to tune.

Signed-off-by: Andreas Oberritter <o...@linuxtv.org>
---
 drivers/media/dvb/dvb-core/dvb_frontend.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c 
b/drivers/media/dvb/dvb-core/dvb_frontend.c
index 45ea843..4102311 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -220,6 +220,16 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe,
        return 0;
 }
 
+static void dvb_frontend_clear_events(struct dvb_frontend *fe)
+{
+       struct dvb_frontend_private *fepriv = fe->frontend_priv;
+       struct dvb_fe_events *events = &fepriv->events;
+
+       mutex_lock(&events->mtx);
+       events->eventr = events->eventw;
+       mutex_unlock(&events->mtx);
+}
+
 static void dvb_frontend_init(struct dvb_frontend *fe)
 {
        dprintk ("DVB: initialising adapter %i frontend %i (%s)...\n",
@@ -1891,6 +1901,7 @@ static int dvb_frontend_ioctl_legacy(struct file *file,
                /* Request the search algorithm to search */
                fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN;
 
+               dvb_frontend_clear_events(fe);
                dvb_frontend_add_event(fe, 0);
                dvb_frontend_wakeup(fe);
                fepriv->status = 0;
-- 
1.7.2.5

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to