Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755175AbaLVPM3 (ORCPT ); Mon, 22 Dec 2014 10:12:29 -0500 Received: from metis.ext.pengutronix.de ([92.198.50.35]:50642 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755075AbaLVPLq (ORCPT ); Mon, 22 Dec 2014 10:11:46 -0500 From: Philipp Zabel To: Grant Likely Cc: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, Guennadi Liakhovetski , Laurent Pinchart , Mathieu Poirier , David Airlie , Mauro Carvalho Chehab , Russell King , Greg Kroah-Hartman , kernel@pengutronix.de, Philipp Zabel Subject: [PATCH v6 2/3] of: Add for_each_endpoint_of_node helper macro Date: Mon, 22 Dec 2014 16:11:30 +0100 Message-Id: <1419261091-29888-3-git-send-email-p.zabel@pengutronix.de> X-Mailer: git-send-email 2.1.3 In-Reply-To: <1419261091-29888-1-git-send-email-p.zabel@pengutronix.de> References: <1419261091-29888-1-git-send-email-p.zabel@pengutronix.de> X-SA-Exim-Connect-IP: 10.1.0.7 X-SA-Exim-Mail-From: p.zabel@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Note that while of_graph_get_next_endpoint decrements the reference count of the child node passed to it, of_node_put(child) still has to be called manually when breaking out of the loop. Signed-off-by: Philipp Zabel Acked-by: Laurent Pinchart --- include/linux/of_graph.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/linux/of_graph.h b/include/linux/of_graph.h index befef42..e43442e 100644 --- a/include/linux/of_graph.h +++ b/include/linux/of_graph.h @@ -26,6 +26,17 @@ struct of_endpoint { const struct device_node *local_node; }; +/** + * for_each_endpoint_of_node - iterate over every endpoint in a device node + * @parent: parent device node containing ports and endpoints + * @child: loop variable pointing to the current endpoint node + * + * When breaking out of the loop, of_node_put(child) has to be called manually. + */ +#define for_each_endpoint_of_node(parent, child) \ + for (child = of_graph_get_next_endpoint(parent, NULL); child != NULL; \ + child = of_graph_get_next_endpoint(parent, child)) + #ifdef CONFIG_OF int of_graph_parse_endpoint(const struct device_node *node, struct of_endpoint *endpoint); -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/