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>
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h
index 7a2fa3e..80e1193 100644
--- a/include/media/soc_camera.h
+++ b/include/media/soc_camera.h
@@ -56,9 +56,13 @@
 	unsigned char nr;				/* Host number */
 	size_t msize;
 	struct videobuf_queue_ops *vbq_ops;
-	struct module *owner;
 	void *priv;
 	char *drv_name;
+	struct soc_camera_host_ops *ops;
+};
+
+struct soc_camera_host_ops {
+	struct module *owner;
 	int (*add)(struct soc_camera_device *);
 	void (*remove)(struct soc_camera_device *);
 	int (*set_fmt_cap)(struct soc_camera_device *, __u32,
@@ -88,8 +92,7 @@
 	return container_of(dev, struct soc_camera_host, dev);
 }
 
-extern int soc_camera_host_register(struct soc_camera_host *ici,
-				     struct module *owner);
+extern int soc_camera_host_register(struct soc_camera_host *ici);
 extern void soc_camera_host_unregister(struct soc_camera_host *ici);
 extern int soc_camera_device_register(struct soc_camera_device *icd);
 extern void soc_camera_device_unregister(struct soc_camera_device *icd);