media: xilinx: dma: Use media_pipeline_for_each_pad()

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>
This commit is contained in:
Laurent Pinchart 2022-12-21 10:33:41 +01:00 committed by Mauro Carvalho Chehab
parent 27e45f2e59
commit 36c9b753a1

View file

@ -173,31 +173,19 @@ static int xvip_pipeline_set_stream(struct xvip_pipeline *pipe, bool on)
static int xvip_pipeline_validate(struct xvip_pipeline *pipe, static int xvip_pipeline_validate(struct xvip_pipeline *pipe,
struct xvip_dma *start) struct xvip_dma *start)
{ {
struct media_graph graph; struct media_pipeline_pad_iter iter;
struct media_entity *entity = &start->video.entity;
struct media_device *mdev = entity->graph_obj.mdev;
unsigned int num_inputs = 0; unsigned int num_inputs = 0;
unsigned int num_outputs = 0; unsigned int num_outputs = 0;
int ret; struct media_pad *pad;
mutex_lock(&mdev->graph_mutex); /* Locate the video nodes in the pipeline. */
media_pipeline_for_each_pad(&pipe->pipe, &iter, pad) {
/* 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);
while ((entity = media_graph_walk_next(&graph))) {
struct xvip_dma *dma; struct xvip_dma *dma;
if (entity->function != MEDIA_ENT_F_IO_V4L) if (pad->entity->function != MEDIA_ENT_F_IO_V4L)
continue; 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) { if (dma->pad.flags & MEDIA_PAD_FL_SINK) {
pipe->output = dma; 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. */ /* We need exactly one output and zero or one input. */
if (num_outputs != 1 || num_inputs > 1) if (num_outputs != 1 || num_inputs > 1)
return -EPIPE; return -EPIPE;