media: xilinx: dma: Use media_pipeline_for_each_pad()
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 21 Dec 2022 09:33:41 +0000 (10:33 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Mon, 6 Feb 2023 07:35:19 +0000 (08:35 +0100)
Replace usage of the deprecated media graph walk API with the new
media_pipeline_for_each_pad() macro.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/platform/xilinx/xilinx-dma.c

index 0a7fd8642a65968bd03abe2d0911b75a0e8c0d75..fee02c8c85fd477ad3fc168f96e771af44226737 100644 (file)
@@ -173,31 +173,19 @@ done:
 static int xvip_pipeline_validate(struct xvip_pipeline *pipe,
                                  struct xvip_dma *start)
 {
-       struct media_graph graph;
-       struct media_entity *entity = &start->video.entity;
-       struct media_device *mdev = entity->graph_obj.mdev;
+       struct media_pipeline_pad_iter iter;
        unsigned int num_inputs = 0;
        unsigned int num_outputs = 0;
-       int ret;
-
-       mutex_lock(&mdev->graph_mutex);
-
-       /* Walk the graph to locate the video nodes. */
-       ret = media_graph_walk_init(&graph, mdev);
-       if (ret) {
-               mutex_unlock(&mdev->graph_mutex);
-               return ret;
-       }
-
-       media_graph_walk_start(&graph, entity);
+       struct media_pad *pad;
 
-       while ((entity = media_graph_walk_next(&graph))) {
+       /* Locate the video nodes in the pipeline. */
+       media_pipeline_for_each_pad(&pipe->pipe, &iter, pad) {
                struct xvip_dma *dma;
 
-               if (entity->function != MEDIA_ENT_F_IO_V4L)
+               if (pad->entity->function != MEDIA_ENT_F_IO_V4L)
                        continue;
 
-               dma = to_xvip_dma(media_entity_to_video_device(entity));
+               dma = to_xvip_dma(media_entity_to_video_device(pad->entity));
 
                if (dma->pad.flags & MEDIA_PAD_FL_SINK) {
                        pipe->output = dma;
@@ -207,10 +195,6 @@ static int xvip_pipeline_validate(struct xvip_pipeline *pipe,
                }
        }
 
-       mutex_unlock(&mdev->graph_mutex);
-
-       media_graph_walk_cleanup(&graph);
-
        /* We need exactly one output and zero or one input. */
        if (num_outputs != 1 || num_inputs > 1)
                return -EPIPE;