Merge branch 'vuplus-1.6' of 192.168.102.66:/var/ikseong/repo/openembedded into test_0921
[vuplus_openembedded] / recipes / v4l-dvb / files / backport-b.patch
1 commit 77b78eb0d4d21e70b09983aded1c4c0079705a57
2 Author: Andreas Oberritter <obi@linuxtv.org>
3 Date:   Thu Aug 4 13:10:27 2011 +0000
4
5     DVB: dvb_frontend: clear stale events on FE_SET_FRONTEND
6     
7     - Old events aren't very useful, so clear them before adding
8       the first event after an attempt to tune.
9     
10     Signed-off-by: Andreas Oberritter <obi@linuxtv.org>
11     Signed-off-by: ghost <andreas.monzner@multimedia-labs.de>
12
13 diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
14 index 7553358..9f39581 100644
15 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c
16 +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
17 @@ -227,6 +227,16 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe,
18         return 0;
19  }
20  
21 +static void dvb_frontend_clear_events(struct dvb_frontend *fe)
22 +{
23 +       struct dvb_frontend_private *fepriv = fe->frontend_priv;
24 +       struct dvb_fe_events *events = &fepriv->events;
25 +
26 +       mutex_lock(&events->mtx);
27 +       events->eventr = events->eventw;
28 +       mutex_unlock(&events->mtx);
29 +}
30 +
31  static void dvb_frontend_init(struct dvb_frontend *fe)
32  {
33         dprintk ("DVB: initialising adapter %i frontend %i (%s)...\n",
34 @@ -1908,6 +1908,7 @@ static int dvb_frontend_ioctl_legacy(struct file *file,
35                 /* Request the search algorithm to search */
36                 fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN;
37  
38 +               dvb_frontend_clear_events(fe);
39                 dvb_frontend_add_event(fe, 0);
40                 dvb_frontend_wakeup(fe);
41                 fepriv->status = 0;