]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/media/platform/vimc/vimc-common.h
media: vimc: common: remove unused function 'vimc_pipeline_s_stream'
[linux.git] / drivers / media / platform / vimc / vimc-common.h
index 9c2e0e216c6b92b8f6fe0d2097b0e2486d437cfe..c4471e72ad2b75750f0819ec4b2f23dbe5e483ef 100644 (file)
@@ -8,6 +8,7 @@
 #ifndef _VIMC_COMMON_H_
 #define _VIMC_COMMON_H_
 
+#include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <media/media-device.h>
 #include <media/v4l2-device.h>
 
 #define VIMC_FRAME_INDEX(lin, col, width, bpp) ((lin * width + col) * bpp)
 
+/* Source and sink pad checks */
+#define VIMC_IS_SRC(pad)       (pad)
+#define VIMC_IS_SINK(pad)      (!(pad))
+
 /**
  * struct vimc_colorimetry_clamp - Adjust colorimetry parameters
  *
@@ -111,6 +116,59 @@ struct vimc_ent_device {
                              struct v4l2_pix_format *fmt);
 };
 
+/**
+ * struct vimc_device - main device for vimc driver
+ *
+ * @pdev       pointer to the platform device
+ * @pipe_cfg   pointer to the vimc pipeline configuration structure
+ * @ent_devs   array of vimc_ent_device pointers
+ * @mdev       the associated media_device parent
+ * @v4l2_dev   Internal v4l2 parent device
+ */
+struct vimc_device {
+       struct platform_device pdev;
+       const struct vimc_pipeline_config *pipe_cfg;
+       struct vimc_ent_device **ent_devs;
+       struct media_device mdev;
+       struct v4l2_device v4l2_dev;
+};
+
+/**
+ * struct vimc_ent_config      Structure which describes individual
+ *                             configuration for each entity
+ *
+ * @name                       entity name
+ * @ved                                pointer to vimc_ent_device (a node in the
+ *                                     topology)
+ * @add                                subdev add hook - initializes and registers
+ *                                     subdev called from vimc-core
+ * @rm                         subdev rm hook - unregisters and frees
+ *                                     subdev called from vimc-core
+ */
+struct vimc_ent_config {
+       const char *name;
+       struct vimc_ent_device *(*add)(struct vimc_device *vimc,
+                                      const char *vcfg_name);
+       void (*rm)(struct vimc_device *vimc, struct vimc_ent_device *ved);
+};
+
+/* prototypes for vimc_ent_config add and rm hooks */
+struct vimc_ent_device *vimc_cap_add(struct vimc_device *vimc,
+                                    const char *vcfg_name);
+void vimc_cap_rm(struct vimc_device *vimc, struct vimc_ent_device *ved);
+
+struct vimc_ent_device *vimc_deb_add(struct vimc_device *vimc,
+                                    const char *vcfg_name);
+void vimc_deb_rm(struct vimc_device *vimc, struct vimc_ent_device *ved);
+
+struct vimc_ent_device *vimc_sca_add(struct vimc_device *vimc,
+                                    const char *vcfg_name);
+void vimc_sca_rm(struct vimc_device *vimc, struct vimc_ent_device *ved);
+
+struct vimc_ent_device *vimc_sen_add(struct vimc_device *vimc,
+                                    const char *vcfg_name);
+void vimc_sen_rm(struct vimc_device *vimc, struct vimc_ent_device *ved);
+
 /**
  * vimc_pads_init - initialize pads
  *
@@ -134,17 +192,6 @@ static inline void vimc_pads_cleanup(struct media_pad *pads)
        kfree(pads);
 }
 
-/**
- * vimc_pipeline_s_stream - start stream through the pipeline
- *
- * @ent:               the pointer to struct media_entity for the node
- * @enable:            1 to start the stream and 0 to stop
- *
- * Helper function to call the s_stream of the subdevices connected
- * in all the sink pads of the entity
- */
-int vimc_pipeline_s_stream(struct media_entity *ent, int enable);
-
 /**
  * vimc_pix_map_by_index - get vimc_pix_map struct by its index
  *
@@ -193,18 +240,6 @@ int vimc_ent_sd_register(struct vimc_ent_device *ved,
                         const struct v4l2_subdev_internal_ops *sd_int_ops,
                         const struct v4l2_subdev_ops *sd_ops);
 
-/**
- * vimc_ent_sd_unregister - cleanup and unregister a subdev node
- *
- * @ved:       the vimc_ent_device struct to be cleaned up
- * @sd:                the v4l2_subdev struct to be unregistered
- *
- * Helper function cleanup and unregister the struct vimc_ent_device and struct
- * v4l2_subdev which represents a subdev node in the topology
- */
-void vimc_ent_sd_unregister(struct vimc_ent_device *ved,
-                           struct v4l2_subdev *sd);
-
 /**
  * vimc_link_validate - validates a media link
  *