summaryrefslogtreecommitdiff
path: root/linux/include/media/soc_camera.h
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2008-03-24 12:18:36 +0000
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-03-24 12:18:36 +0000
commita325b0a427757946052053834c1dbbc50f89526c (patch)
tree99a345753187aa97eadff18453a3d8ab84a19c79 /linux/include/media/soc_camera.h
parenteea2301e210243d3bedcd2441624c6082cc73789 (diff)
downloadmediapointer-dvb-s2-a325b0a427757946052053834c1dbbc50f89526c.tar.gz
mediapointer-dvb-s2-a325b0a427757946052053834c1dbbc50f89526c.tar.bz2
soc-camera: improve separation between soc_camera_ops and soc_camera_device
From: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de> In case of muliple cameras, handled by the same driver, they can support different picture formats, therefore formats and num_formats cannot belong to soc_camera_ops, which is only one per driver, move them to soc_camera_device, which is one per device instance. OTOH, probe and remove methods are always the same, move them to soc_camera_ops. Thanks to Eric Miao for making me look at this code again:-) Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/include/media/soc_camera.h')
-rw-r--r--linux/include/media/soc_camera.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/linux/include/media/soc_camera.h b/linux/include/media/soc_camera.h
index 3e48e435b..7a2fa3ed8 100644
--- a/linux/include/media/soc_camera.h
+++ b/linux/include/media/soc_camera.h
@@ -38,8 +38,8 @@ struct soc_camera_device {
struct soc_camera_ops *ops;
struct video_device *vdev;
const struct soc_camera_data_format *current_fmt;
- int (*probe)(struct soc_camera_device *icd);
- void (*remove)(struct soc_camera_device *icd);
+ const struct soc_camera_data_format *formats;
+ int num_formats;
struct module *owner;
/* soc_camera.c private count. Only accessed with video_lock held */
int use_count;
@@ -106,6 +106,8 @@ struct soc_camera_data_format {
struct soc_camera_ops {
struct module *owner;
+ int (*probe)(struct soc_camera_device *);
+ void (*remove)(struct soc_camera_device *);
int (*init)(struct soc_camera_device *);
int (*release)(struct soc_camera_device *);
int (*start_capture)(struct soc_camera_device *);
@@ -121,8 +123,6 @@ struct soc_camera_ops {
int (*get_register)(struct soc_camera_device *, struct v4l2_register *);
int (*set_register)(struct soc_camera_device *, struct v4l2_register *);
#endif
- const struct soc_camera_data_format *formats;
- int num_formats;
int (*get_control)(struct soc_camera_device *, struct v4l2_control *);
int (*set_control)(struct soc_camera_device *, struct v4l2_control *);
const struct v4l2_queryctrl *controls;