Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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;