summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/b2c2
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2006-02-08 11:05:37 -0200
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-02-08 11:05:37 -0200
commit6c16e60ebc542dfe803c0070aaf3e356185b521a (patch)
tree2aa7c6c70920c0f4a67a58a202f34f403df3a671 /linux/drivers/media/dvb/b2c2
parent243c1d1fa0d09431bf84f02e4a20c002da7c08c7 (diff)
parent56a304929cac33ceb38bbb90f4bb30c9477f64d5 (diff)
downloadmediapointer-dvb-s2-6c16e60ebc542dfe803c0070aaf3e356185b521a.tar.gz
mediapointer-dvb-s2-6c16e60ebc542dfe803c0070aaf3e356185b521a.tar.bz2
Merged patch 3310 at tip
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/dvb/b2c2')
-rw-r--r--linux/drivers/media/dvb/b2c2/flexcop-common.h11
-rw-r--r--linux/drivers/media/dvb/b2c2/flexcop-i2c.c6
2 files changed, 12 insertions, 5 deletions
diff --git a/linux/drivers/media/dvb/b2c2/flexcop-common.h b/linux/drivers/media/dvb/b2c2/flexcop-common.h
index 7d7e1613c..6162c04bd 100644
--- a/linux/drivers/media/dvb/b2c2/flexcop-common.h
+++ b/linux/drivers/media/dvb/b2c2/flexcop-common.h
@@ -10,6 +10,10 @@
#include <linux/config.h>
#include <linux/pci.h>
+#include "compat.h"
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
+#include <linux/mutex.h>
+#endif
#include "flexcop-reg.h"
@@ -73,8 +77,11 @@ struct flexcop_device {
int (*fe_sleep) (struct dvb_frontend *);
struct i2c_adapter i2c_adap;
- struct semaphore i2c_sem;
-
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
+ struct mutex i2c_mutex;
+#else
+ struct semaphore i2c_mutex;
+#endif
struct module *owner;
/* options and status */
diff --git a/linux/drivers/media/dvb/b2c2/flexcop-i2c.c b/linux/drivers/media/dvb/b2c2/flexcop-i2c.c
index 56495cb6c..e0bd2d8f0 100644
--- a/linux/drivers/media/dvb/b2c2/flexcop-i2c.c
+++ b/linux/drivers/media/dvb/b2c2/flexcop-i2c.c
@@ -135,7 +135,7 @@ static int flexcop_master_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg msgs
struct flexcop_device *fc = i2c_get_adapdata(i2c_adap);
int i, ret = 0;
- if (down_interruptible(&fc->i2c_sem))
+ if (mutex_lock_interruptible(&fc->i2c_mutex))
return -ERESTARTSYS;
/* reading */
@@ -161,7 +161,7 @@ static int flexcop_master_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg msgs
else
ret = num;
- up(&fc->i2c_sem);
+ mutex_unlock(&fc->i2c_mutex);
return ret;
}
@@ -180,7 +180,7 @@ int flexcop_i2c_init(struct flexcop_device *fc)
{
int ret;
- sema_init(&fc->i2c_sem,1);
+ mutex_init(&fc->i2c_mutex);
memset(&fc->i2c_adap, 0, sizeof(struct i2c_adapter));
strncpy(fc->i2c_adap.name, "B2C2 FlexCop device",I2C_NAME_SIZE);