aboutsummaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@pengutronix.de>2008-04-04 12:41:25 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 13:07:57 -0400
commitb8d9904c3525c0a149976ffaad48fcb03e8703f7 (patch)
treeac116e518f70a694046752a05c16a5285bc4713f /include/media
parentce54093cefd64c1a2cb6b8c5ed1d68d2bd7a34ab (diff)
V4L/DVB (7500): soc-camera: extract function pointers from host object into operations
Function pointers and the driver owner are not expected to change throughout soc-camera host's life. Extract them into an operations struct. 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.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h
index 7a2fa3ed849e..80e1193c07d5 100644
--- a/include/media/soc_camera.h
+++ b/include/media/soc_camera.h
@@ -56,9 +56,13 @@ struct soc_camera_host {
56 unsigned char nr; /* Host number */ 56 unsigned char nr; /* Host number */
57 size_t msize; 57 size_t msize;
58 struct videobuf_queue_ops *vbq_ops; 58 struct videobuf_queue_ops *vbq_ops;
59 struct module *owner;
60 void *priv; 59 void *priv;
61 char *drv_name; 60 char *drv_name;
61 struct soc_camera_host_ops *ops;
62};
63
64struct soc_camera_host_ops {
65 struct module *owner;
62 int (*add)(struct soc_camera_device *); 66 int (*add)(struct soc_camera_device *);
63 void (*remove)(struct soc_camera_device *); 67 void (*remove)(struct soc_camera_device *);
64 int (*set_fmt_cap)(struct soc_camera_device *, __u32, 68 int (*set_fmt_cap)(struct soc_camera_device *, __u32,
@@ -88,8 +92,7 @@ static inline struct soc_camera_host *to_soc_camera_host(struct device *dev)
88 return container_of(dev, struct soc_camera_host, dev); 92 return container_of(dev, struct soc_camera_host, dev);
89} 93}
90 94
91extern int soc_camera_host_register(struct soc_camera_host *ici, 95extern int soc_camera_host_register(struct soc_camera_host *ici);
92 struct module *owner);
93extern void soc_camera_host_unregister(struct soc_camera_host *ici); 96extern void soc_camera_host_unregister(struct soc_camera_host *ici);
94extern int soc_camera_device_register(struct soc_camera_device *icd); 97extern int soc_camera_device_register(struct soc_camera_device *icd);
95extern void soc_camera_device_unregister(struct soc_camera_device *icd); 98extern void soc_camera_device_unregister(struct soc_camera_device *icd);