summaryrefslogtreecommitdiffstats
path: root/include/media/v4l2-dev.h
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ideasonboard.com>2022-08-31 16:13:35 +0200
committerMauro Carvalho Chehab <mchehab@kernel.org>2022-09-24 09:15:52 +0200
commitd9f4434513b499ddb8ba8617fba787b1ce98274e (patch)
tree2511aac5989743e07f245a6f141240add21a0d52 /include/media/v4l2-dev.h
parentmedia: drivers: use video_device_pipeline() (diff)
downloadlinux-d9f4434513b499ddb8ba8617fba787b1ce98274e.tar.xz
linux-d9f4434513b499ddb8ba8617fba787b1ce98274e.zip
media: mc: entity: add alloc variant of pipeline_start
Add new variant of media_pipeline_start(), media_pipeline_alloc_start(). media_pipeline_alloc_start() can be used by drivers that do not need to extend the media_pipeline. The function will either use the pipeline already associated with the entity, if such exists, or allocate a new pipeline. When media_pipeline_stop() is called and the pipeline's use count drops to zero, the pipeline is automatically freed. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to '')
-rw-r--r--include/media/v4l2-dev.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
index 494685872254..643da0740ab0 100644
--- a/include/media/v4l2-dev.h
+++ b/include/media/v4l2-dev.h
@@ -608,6 +608,20 @@ void video_device_pipeline_stop(struct video_device *vdev);
void __video_device_pipeline_stop(struct video_device *vdev);
/**
+ * video_device_pipeline_alloc_start - Mark a pipeline as streaming
+ * @vdev: Starting video device
+ *
+ * video_device_pipeline_alloc_start() is similar to video_device_pipeline_start()
+ * but instead of working on a given pipeline the function will use an
+ * existing pipeline if the video device is already part of a pipeline, or
+ * allocate a new pipeline.
+ *
+ * Calls to video_device_pipeline_alloc_start() must be matched with
+ * video_device_pipeline_stop().
+ */
+__must_check int video_device_pipeline_alloc_start(struct video_device *vdev);
+
+/**
* video_device_pipeline - Get the media pipeline a video device is part of
* @vdev: The video device
*