Commit 20640bea authored by Andreas Oberritter's avatar Andreas Oberritter Committed by Mauro Carvalho Chehab

[media] DVB: dvb_frontend: clear stale events on FE_SET_FRONTEND

  the first event after an attempt to tune.
Signed-off-by: default avatarAndreas Oberritter <obi@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 5c9f480b
...@@ -220,6 +220,16 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe, ...@@ -220,6 +220,16 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe,
return 0; 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) static void dvb_frontend_init(struct dvb_frontend *fe)
{ {
dprintk ("DVB: initialising adapter %i frontend %i (%s)...\n", dprintk ("DVB: initialising adapter %i frontend %i (%s)...\n",
...@@ -1891,6 +1901,7 @@ static int dvb_frontend_ioctl_legacy(struct file *file, ...@@ -1891,6 +1901,7 @@ static int dvb_frontend_ioctl_legacy(struct file *file,
/* Request the search algorithm to search */ /* Request the search algorithm to search */
fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN; fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN;
dvb_frontend_clear_events(fe);
dvb_frontend_add_event(fe, 0); dvb_frontend_add_event(fe, 0);
dvb_frontend_wakeup(fe); dvb_frontend_wakeup(fe);
fepriv->status = 0; fepriv->status = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment