From a325b0a427757946052053834c1dbbc50f89526c Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Mon, 24 Mar 2008 12:18:36 +0000 Subject: soc-camera: improve separation between soc_camera_ops and soc_camera_device From: Guennadi Liakhovetski 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 Signed-off-by: Mauro Carvalho Chehab --- linux/include/media/soc_camera.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'linux/include') 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; -- cgit v1.2.3