diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2008-12-18 16:28:54 +0100 |
---|---|---|
committer | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2008-12-18 16:28:54 +0100 |
commit | ffcb9d5faa4646d9cc1eb76d94fb97beb14e67d7 (patch) | |
tree | 3bfcbcfd42e70e69640e97cd77a07b9f7e95992d /linux/include | |
parent | 7d538f92603bb1975760b0b9c0b215b8191e4f82 (diff) | |
download | mediapointer-dvb-s2-ffcb9d5faa4646d9cc1eb76d94fb97beb14e67d7.tar.gz mediapointer-dvb-s2-ffcb9d5faa4646d9cc1eb76d94fb97beb14e67d7.tar.bz2 |
soc-camera: unify locking, play nicer with videobuf locking
From: Guennadi Liakhovetski <lg@denx.de>
Move mutex from host drivers to camera device object, take into account
videobuf locking.
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
---
drivers/media/video/pxa_camera.c | 15 ++---
drivers/media/video/sh_mobile_ceu_camera.c | 9 +--
drivers/media/video/soc_camera.c | 99 +++++++++++++++++++++++-----
include/media/soc_camera.h | 8 ++-
4 files changed, 96 insertions(+), 35 deletions(-)
Diffstat (limited to 'linux/include')
-rw-r--r-- | linux/include/media/soc_camera.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/linux/include/media/soc_camera.h b/linux/include/media/soc_camera.h index 38b826c60..8bae9a359 100644 --- a/linux/include/media/soc_camera.h +++ b/linux/include/media/soc_camera.h @@ -12,9 +12,10 @@ #ifndef SOC_CAMERA_H #define SOC_CAMERA_H +#include <linux/mutex.h> +#include <linux/pm.h> #include <linux/videodev2.h> #include <media/videobuf-core.h> -#include <linux/pm.h> struct soc_camera_device { struct list_head list; @@ -45,9 +46,10 @@ struct soc_camera_device { struct soc_camera_format_xlate *user_formats; int num_user_formats; struct module *owner; - void *host_priv; /* per-device host private data */ - /* soc_camera.c private count. Only accessed with video_lock held */ + void *host_priv; /* Per-device host private data */ + /* soc_camera.c private count. Only accessed with .video_lock held */ int use_count; + struct mutex video_lock; /* Protects device data */ }; struct soc_camera_file { |