summaryrefslogtreecommitdiff
path: root/drivers/of
diff options
context:
space:
mode:
authorDmitry Osipenko <digetx@gmail.com>2020-07-01 10:42:31 +0300
committerSam Ravnborg <sam@ravnborg.org>2020-07-01 10:49:02 +0200
commit4ec0a44ba8d797876ff416fc0317a0169483d240 (patch)
tree53a4efb7f4221e32fa8ca7edd1423d4bc107235a /drivers/of
parent1185c406f11a49335253036feaa0169c0d174ef8 (diff)
of_graph: add of_graph_is_present()
In some cases it's very useful to silently check whether port node exists at all in a device-tree before proceeding with parsing the graph. The DRM bridges code is one example of such case where absence of a graph in a device-tree is a legit condition. This patch adds of_graph_is_present() which returns true if given device-tree node contains OF graph port. Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Dmitry Osipenko <digetx@gmail.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Link: https://patchwork.freedesktop.org/patch/msgid/20200701074232.13632-2-digetx@gmail.com
Diffstat (limited to 'drivers/of')
-rw-r--r--drivers/of/property.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/of/property.c b/drivers/of/property.c
index 1f2086f4e7ce..d3f9fb98e882 100644
--- a/drivers/of/property.c
+++ b/drivers/of/property.c
@@ -30,6 +30,29 @@
#include "of_private.h"
/**
+ * of_graph_is_present() - check graph's presence
+ * @node: pointer to device_node containing graph port
+ *
+ * Return: True if @node has a port or ports (with a port) sub-node,
+ * false otherwise.
+ */
+bool of_graph_is_present(const struct device_node *node)
+{
+ struct device_node *ports, *port;
+
+ ports = of_get_child_by_name(node, "ports");
+ if (ports)
+ node = ports;
+
+ port = of_get_child_by_name(node, "port");
+ of_node_put(ports);
+ of_node_put(port);
+
+ return !!port;
+}
+EXPORT_SYMBOL(of_graph_is_present);
+
+/**
* of_property_count_elems_of_size - Count the number of elements in a property
*
* @np: device node from which the property value is to be read.