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;
        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;
 
 
                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;
 
 
 
        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;
 
 
        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;
 
        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];