Commit 03b76123 authored by Matthias Kaehlcke's avatar Matthias Kaehlcke Committed by Mauro Carvalho Chehab

V4L/DVB (5946): Use mutex instead of semaphore in the DVB frontend tuning interface

The DVB frontend tuning interface uses a semaphore as mutex. Use the
mutex API instead of the (binary) semaphore.
Signed-off-by: default avatarMatthias Kaehlcke <matthias.kaehlcke@gmail.com>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 667c7bc0
...@@ -138,7 +138,7 @@ static void dvb_frontend_add_event(struct dvb_frontend *fe, fe_status_t status) ...@@ -138,7 +138,7 @@ static void dvb_frontend_add_event(struct dvb_frontend *fe, fe_status_t status)
dprintk ("%s\n", __FUNCTION__); dprintk ("%s\n", __FUNCTION__);
if (down_interruptible (&events->sem)) if (mutex_lock_interruptible (&events->mtx))
return; return;
wp = (events->eventw + 1) % MAX_EVENT; wp = (events->eventw + 1) % MAX_EVENT;
...@@ -159,7 +159,7 @@ static void dvb_frontend_add_event(struct dvb_frontend *fe, fe_status_t status) ...@@ -159,7 +159,7 @@ static void dvb_frontend_add_event(struct dvb_frontend *fe, fe_status_t status)
events->eventw = wp; events->eventw = wp;
up (&events->sem); mutex_unlock(&events->mtx);
e->status = status; e->status = status;
...@@ -197,7 +197,7 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe, ...@@ -197,7 +197,7 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe,
return ret; return ret;
} }
if (down_interruptible (&events->sem)) if (mutex_lock_interruptible (&events->mtx))
return -ERESTARTSYS; return -ERESTARTSYS;
memcpy (event, &events->events[events->eventr], memcpy (event, &events->events[events->eventr],
...@@ -205,7 +205,7 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe, ...@@ -205,7 +205,7 @@ static int dvb_frontend_get_event(struct dvb_frontend *fe,
events->eventr = (events->eventr + 1) % MAX_EVENT; events->eventr = (events->eventr + 1) % MAX_EVENT;
up (&events->sem); mutex_unlock(&events->mtx);
return 0; return 0;
} }
...@@ -1126,7 +1126,7 @@ int dvb_register_frontend(struct dvb_adapter* dvb, ...@@ -1126,7 +1126,7 @@ int dvb_register_frontend(struct dvb_adapter* dvb,
init_MUTEX (&fepriv->sem); init_MUTEX (&fepriv->sem);
init_waitqueue_head (&fepriv->wait_queue); init_waitqueue_head (&fepriv->wait_queue);
init_waitqueue_head (&fepriv->events.wait_queue); init_waitqueue_head (&fepriv->events.wait_queue);
init_MUTEX (&fepriv->events.sem); mutex_init(&fepriv->events.mtx);
fe->dvb = dvb; fe->dvb = dvb;
fepriv->inversion = INVERSION_OFF; fepriv->inversion = INVERSION_OFF;
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/mutex.h>
#include <linux/dvb/frontend.h> #include <linux/dvb/frontend.h>
...@@ -142,7 +143,7 @@ struct dvb_fe_events { ...@@ -142,7 +143,7 @@ struct dvb_fe_events {
int eventr; int eventr;
int overflow; int overflow;
wait_queue_head_t wait_queue; wait_queue_head_t wait_queue;
struct semaphore sem; struct mutex mtx;
}; };
struct dvb_frontend { struct dvb_frontend {
......
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