[RFC 3/5] of: Return total number of entries in of_count_phandle_with_args

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




of_count_phandle_with_args used to count the phandles until the end of the
list or when the first empty phandle was encountered. There may be valid
entries after the empty phandle as well, include all entries to the count.

Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
---
 drivers/of/base.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index fb2fd90f525c..4c8b93cfd06c 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -1418,14 +1418,14 @@ EXPORT_SYMBOL(of_parse_phandle_with_fixed_args);
  * @list_name:	property name that contains a list
  * @cells_name:	property name that specifies phandles' arguments count
  *
- * Returns the number of phandle + argument tuples within a property. It
- * is a typical pattern to encode a list of phandle and variable
- * arguments into a single property. The number of arguments is encoded
- * by a property in the phandle-target node. For example, a gpios
- * property would contain a list of GPIO specifies consisting of a
- * phandle and 1 or more arguments. The number of arguments are
- * determined by the #gpio-cells property in the node pointed to by the
- * phandle.
+ * Returns the number of phandle + argument tuples within a property
+ * including empty phandles. It is a typical pattern to encode a list
+ * of phandle and variable arguments into a single property. The
+ * number of arguments is encoded by a property in the phandle-target
+ * node. For example, a gpios property would contain a list of GPIO
+ * specifies consisting of a phandle and 1 or more arguments. The
+ * number of arguments are determined by the #gpio-cells property in
+ * the node pointed to by the phandle.
  *
  * Returns the number of phandles + arguments tuples within a property
  * on success, %-ENODATA if the property isn't found and %-EINVAL on
@@ -1441,12 +1441,12 @@ int of_count_phandle_with_args(const struct device_node *np, const char *list_na
 	if (rc)
 		return rc;
 
-	for (rc = of_phandle_iterator_next(&it); !rc;
+	for (rc = of_phandle_iterator_next(&it); !rc || rc == -ENOENT;
 	     rc = of_phandle_iterator_next(&it))
 		cur_index += 1;
 
-	if (rc != -ENODATA && rc != -ENOENT)
-		return rc == -ENOENT ? -ENODATA : rc;
+	if (rc != -ENODATA)
+		return rc;
 
 	return cur_index;
 }
-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux