summaryrefslogtreecommitdiff
path: root/linux/include
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2008-04-08 16:28:58 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-08 16:28:58 -0300
commit3f31e29c6caef98850401b10ee2ba51c01ff969a (patch)
tree4ea68edd38e29d89210454939c973c5059b62030 /linux/include
parentac057ef9ae37eb5d78117f191f48bf532f7a2435 (diff)
parentc03a147c1c7804df6087513c653e2613e72aa407 (diff)
downloadmediapointer-dvb-s2-3f31e29c6caef98850401b10ee2ba51c01ff969a.tar.gz
mediapointer-dvb-s2-3f31e29c6caef98850401b10ee2ba51c01ff969a.tar.bz2
merge: http://linuxtv.org/hg/~tmerle/v4l-dvb
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/include')
-rw-r--r--linux/include/media/soc_camera.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/linux/include/media/soc_camera.h b/linux/include/media/soc_camera.h
index 7a2fa3ed8..6a8c8be7a 100644
--- a/linux/include/media/soc_camera.h
+++ b/linux/include/media/soc_camera.h
@@ -48,6 +48,7 @@ struct soc_camera_device {
struct soc_camera_file {
struct soc_camera_device *icd;
struct videobuf_queue vb_vidq;
+ spinlock_t *lock;
};
struct soc_camera_host {
@@ -56,9 +57,13 @@ struct soc_camera_host {
unsigned char nr; /* Host number */
size_t msize;
struct videobuf_queue_ops *vbq_ops;
- struct module *owner;
void *priv;
char *drv_name;
+ struct soc_camera_host_ops *ops;
+};
+
+struct soc_camera_host_ops {
+ struct module *owner;
int (*add)(struct soc_camera_device *);
void (*remove)(struct soc_camera_device *);
int (*set_fmt_cap)(struct soc_camera_device *, __u32,
@@ -69,6 +74,8 @@ struct soc_camera_host {
int (*try_bus_param)(struct soc_camera_device *, __u32);
int (*set_bus_param)(struct soc_camera_device *, __u32);
unsigned int (*poll)(struct file *, poll_table *);
+ spinlock_t* (*spinlock_alloc)(struct soc_camera_file *);
+ void (*spinlock_free)(spinlock_t *);
};
struct soc_camera_link {
@@ -88,8 +95,7 @@ static inline struct soc_camera_host *to_soc_camera_host(struct device *dev)
return container_of(dev, struct soc_camera_host, dev);
}
-extern int soc_camera_host_register(struct soc_camera_host *ici,
- struct module *owner);
+extern int soc_camera_host_register(struct soc_camera_host *ici);
extern void soc_camera_host_unregister(struct soc_camera_host *ici);
extern int soc_camera_device_register(struct soc_camera_device *icd);
extern void soc_camera_device_unregister(struct soc_camera_device *icd);