aboutsummaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorMagnus Damm <magnus.damm@gmail.com>2008-07-11 19:59:34 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-07-20 06:25:21 -0400
commita034d1b76b173b37f9a3646aa8f50a2c14a0f3ea (patch)
tree318a5ccff6e07d0849c21a2d536ebadb96a767a7 /include/media
parent092d3921195c4553a1818e698cee7a281ab361f4 (diff)
V4L/DVB (8338): soc_camera: Move spinlocks
This patch moves the spinlock handling from soc_camera.c to the actual camera host driver. The spinlock_alloc/free callbacks are replaced with code in init_videobuf(). So far all camera host drivers implement their own spinlock_alloc/free methods anyway, and videobuf_queue_core_init() BUGs on a NULL spinlock argument, so, new camera host drivers will not forget to provide a spinlock when initialising their videobuf queues. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'include/media')
-rw-r--r--include/media/soc_camera.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h
index b204c0dee956..bae160213657 100644
--- a/include/media/soc_camera.h
+++ b/include/media/soc_camera.h
@@ -48,7 +48,6 @@ struct soc_camera_device {
48struct soc_camera_file { 48struct soc_camera_file {
49 struct soc_camera_device *icd; 49 struct soc_camera_device *icd;
50 struct videobuf_queue vb_vidq; 50 struct videobuf_queue vb_vidq;
51 spinlock_t *lock;
52}; 51};
53 52
54struct soc_camera_host { 53struct soc_camera_host {
@@ -67,15 +66,13 @@ struct soc_camera_host_ops {
67 int (*set_fmt_cap)(struct soc_camera_device *, __u32, 66 int (*set_fmt_cap)(struct soc_camera_device *, __u32,
68 struct v4l2_rect *); 67 struct v4l2_rect *);
69 int (*try_fmt_cap)(struct soc_camera_device *, struct v4l2_format *); 68 int (*try_fmt_cap)(struct soc_camera_device *, struct v4l2_format *);
70 void (*init_videobuf)(struct videobuf_queue*, spinlock_t *, 69 void (*init_videobuf)(struct videobuf_queue *,
71 struct soc_camera_device *); 70 struct soc_camera_device *);
72 int (*reqbufs)(struct soc_camera_file *, struct v4l2_requestbuffers *); 71 int (*reqbufs)(struct soc_camera_file *, struct v4l2_requestbuffers *);
73 int (*querycap)(struct soc_camera_host *, struct v4l2_capability *); 72 int (*querycap)(struct soc_camera_host *, struct v4l2_capability *);
74 int (*try_bus_param)(struct soc_camera_device *, __u32); 73 int (*try_bus_param)(struct soc_camera_device *, __u32);
75 int (*set_bus_param)(struct soc_camera_device *, __u32); 74 int (*set_bus_param)(struct soc_camera_device *, __u32);
76 unsigned int (*poll)(struct file *, poll_table *); 75 unsigned int (*poll)(struct file *, poll_table *);
77 spinlock_t* (*spinlock_alloc)(struct soc_camera_file *);
78 void (*spinlock_free)(spinlock_t *);
79}; 76};
80 77
81struct soc_camera_link { 78struct soc_camera_link {