diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-03-24 12:18:36 +0000 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-03-24 12:18:36 +0000 |
commit | a325b0a427757946052053834c1dbbc50f89526c (patch) | |
tree | 99a345753187aa97eadff18453a3d8ab84a19c79 /linux/include/media/soc_camera.h | |
parent | eea2301e210243d3bedcd2441624c6082cc73789 (diff) | |
download | mediapointer-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.h | 8 |
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; |