media: drivers: use video_device_pipeline_alloc_start()
authorTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Wed, 31 Aug 2022 14:13:36 +0000 (16:13 +0200)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sat, 24 Sep 2022 07:16:36 +0000 (09:16 +0200)
Use video_device_pipeline_alloc_start() instead of manually
allocating/managing the media pipeline storage.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/renesas/rcar-vin/rcar-dma.c
drivers/media/platform/sunxi/sun4i-csi/sun4i_dma.c
drivers/media/platform/sunxi/sun6i-csi/sun6i_video.c
drivers/media/platform/ti/cal/cal-video.c
drivers/media/platform/ti/cal/cal.h

index 879dd02..3aea96d 100644 (file)
@@ -1244,8 +1244,6 @@ static int rvin_mc_validate_format(struct rvin_dev *vin, struct v4l2_subdev *sd,
 
 static int rvin_set_stream(struct rvin_dev *vin, int on)
 {
-       struct media_pipeline *pipe;
-       struct media_device *mdev;
        struct v4l2_subdev *sd;
        struct media_pad *pad;
        int ret;
@@ -1273,17 +1271,7 @@ static int rvin_set_stream(struct rvin_dev *vin, int on)
        if (ret)
                return ret;
 
-       /*
-        * The graph lock needs to be taken to protect concurrent
-        * starts of multiple VIN instances as they might share
-        * a common subdevice down the line and then should use
-        * the same pipe.
-        */
-       mdev = vin->vdev.entity.graph_obj.mdev;
-       mutex_lock(&mdev->graph_mutex);
-       pipe = media_entity_pipeline(&sd->entity) ? : &vin->vdev.pipe;
-       ret = __video_device_pipeline_start(&vin->vdev, pipe);
-       mutex_unlock(&mdev->graph_mutex);
+       ret = video_device_pipeline_alloc_start(&vin->vdev);
        if (ret)
                return ret;
 
index 17ad9a3..a3e826a 100644 (file)
@@ -266,7 +266,7 @@ static int sun4i_csi_start_streaming(struct vb2_queue *vq, unsigned int count)
                goto err_clear_dma_queue;
        }
 
-       ret = video_device_pipeline_start(&csi->vdev, &csi->vdev.pipe);
+       ret = video_device_pipeline_alloc_start(&csi->vdev);
        if (ret < 0)
                goto err_free_scratch_buffer;
 
index a6873fd..da4b7f9 100644 (file)
@@ -141,7 +141,7 @@ static int sun6i_video_start_streaming(struct vb2_queue *vq, unsigned int count)
 
        video->sequence = 0;
 
-       ret = video_device_pipeline_start(&video->vdev, &video->vdev.pipe);
+       ret = video_device_pipeline_alloc_start(&video->vdev);
        if (ret < 0)
                goto clear_dma_queue;
 
index 0ac54d7..4eade40 100644 (file)
@@ -708,7 +708,7 @@ static int cal_start_streaming(struct vb2_queue *vq, unsigned int count)
        dma_addr_t addr;
        int ret;
 
-       ret = video_device_pipeline_start(&ctx->vdev, &ctx->phy->pipe);
+       ret = video_device_pipeline_alloc_start(&ctx->vdev);
        if (ret < 0) {
                ctx_err(ctx, "Failed to start media pipeline: %d\n", ret);
                goto error_release_buffers;
index 80f2c9c..de73d6d 100644 (file)
@@ -174,7 +174,6 @@ struct cal_camerarx {
        struct device_node      *source_ep_node;
        struct device_node      *source_node;
        struct v4l2_subdev      *source;
-       struct media_pipeline   pipe;
 
        struct v4l2_subdev      subdev;
        struct media_pad        pads[CAL_CAMERARX_NUM_PADS];