From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org, niklas.soderlund@ragnatech.se
Subject: Re: [PATCH 4/5] media: entity: Split graph walk iteration into two functions
Date: Thu, 08 Dec 2016 16:02:05 +0200 [thread overview]
Message-ID: <3239339.ITEAqaAlQp@avalon> (raw)
In-Reply-To: <1480082146-25991-5-git-send-email-sakari.ailus@linux.intel.com>
Hi Sakari,
Thank you for the patch.
On Friday 25 Nov 2016 15:55:45 Sakari Ailus wrote:
> With media_entity_graph_walk_next() getting more and more complicated (and
> especially so with has_routing() support added), split the function into
> two.
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> drivers/media/media-entity.c | 56 +++++++++++++++++++++--------------------
> 1 file changed, 30 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/media/media-entity.c b/drivers/media/media-entity.c
> index 2bddebb..e242ead 100644
> --- a/drivers/media/media-entity.c
> +++ b/drivers/media/media-entity.c
> @@ -338,6 +338,34 @@ void media_graph_walk_start(struct media_graph *graph,
> }
> EXPORT_SYMBOL_GPL(media_graph_walk_start);
>
> +static void graph_walk_iter(struct media_graph *graph)
I'd name the function media_graph_walk_iter(). With that changed,
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> +{
> + struct media_entity *entity = stack_top(graph);
> + struct media_link *link;
> + struct media_entity *next;
> +
> + link = list_entry(link_top(graph), typeof(*link), list);
> +
> + /* The link is not enabled so we do not follow. */
> + if (!(link->flags & MEDIA_LNK_FL_ENABLED)) {
> + link_top(graph) = link_top(graph)->next;
> + return;
> + }
> +
> + /* Get the entity in the other end of the link . */
> + next = media_entity_other(entity, link);
> +
> + /* Has the entity already been visited? */
> + if (media_entity_enum_test_and_set(&graph->ent_enum, next)) {
> + link_top(graph) = link_top(graph)->next;
> + return;
> + }
> +
> + /* Push the new entity to stack and start over. */
> + link_top(graph) = link_top(graph)->next;
> + stack_push(graph, next);
> +}
> +
> struct media_entity *media_graph_walk_next(struct media_graph *graph)
> {
> if (stack_top(graph) == NULL)
> @@ -348,32 +376,8 @@ struct media_entity *media_graph_walk_next(struct
> media_graph *graph) * top of the stack until no more entities on the level
> can be
> * found.
> */
> - while (link_top(graph) != &stack_top(graph)->links) {
> - struct media_entity *entity = stack_top(graph);
> - struct media_link *link;
> - struct media_entity *next;
> -
> - link = list_entry(link_top(graph), typeof(*link), list);
> -
> - /* The link is not enabled so we do not follow. */
> - if (!(link->flags & MEDIA_LNK_FL_ENABLED)) {
> - link_top(graph) = link_top(graph)->next;
> - continue;
> - }
> -
> - /* Get the entity in the other end of the link . */
> - next = media_entity_other(entity, link);
> -
> - /* Has the entity already been visited? */
> - if (media_entity_enum_test_and_set(&graph->ent_enum, next)) {
> - link_top(graph) = link_top(graph)->next;
> - continue;
> - }
> -
> - /* Push the new entity to stack and start over. */
> - link_top(graph) = link_top(graph)->next;
> - stack_push(graph, next);
> - }
> + while (link_top(graph) != &stack_top(graph)->links)
> + graph_walk_iter(graph);
>
> return stack_pop(graph);
> }
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2016-12-08 14:19 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-25 13:55 [PATCH 0/5] Media pipeline and graph walk cleanups and fixes Sakari Ailus
2016-11-25 13:55 ` [PATCH 1/5] media: entity: Fix stream count check Sakari Ailus
2016-12-08 14:09 ` Laurent Pinchart
2016-11-25 13:55 ` [PATCH 2/5] media: entity: Be vocal about failing sanity checks Sakari Ailus
2016-12-08 14:09 ` Laurent Pinchart
2016-11-25 13:55 ` [PATCH 3/5] media: Rename graph and pipeline structs and functions Sakari Ailus
2016-12-08 14:09 ` Laurent Pinchart
2016-11-25 13:55 ` [PATCH 4/5] media: entity: Split graph walk iteration into two functions Sakari Ailus
2016-12-08 14:02 ` Laurent Pinchart [this message]
2016-11-25 13:55 ` [PATCH 5/5] media: entity: Add debug information to graph walk Sakari Ailus
2016-12-08 14:10 ` Laurent Pinchart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3239339.ITEAqaAlQp@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=niklas.soderlund@ragnatech.se \
--cc=sakari.ailus@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.