提交 2021bd01 编写于 作者: J Joerg Roedel 提交者: Rob Herring

of: Remove counting special case from __of_parse_phandle_with_args()

The index = -1 case in __of_parse_phandle_with_args() is
used to just return the number of phandles. That special
case needs extra handling, so move it to the place where it
is needed: of_count_phandle_with_args().

This allows to further simplify __of_parse_phandle_with_args()
later on.
Signed-off-by: NJoerg Roedel <jroedel@suse.de>
Signed-off-by: NRob Herring <robh@kernel.org>
上级 cd209b41
...@@ -1584,10 +1584,7 @@ static int __of_parse_phandle_with_args(const struct device_node *np, ...@@ -1584,10 +1584,7 @@ static int __of_parse_phandle_with_args(const struct device_node *np,
* Unlock node before returning result; will be one of: * Unlock node before returning result; will be one of:
* -ENOENT : index is for empty phandle * -ENOENT : index is for empty phandle
* -EINVAL : parsing error on data * -EINVAL : parsing error on data
* [1..n] : Number of phandle (count mode; when index = -1)
*/ */
if (rc == -ENOENT && index < 0)
rc = cur_index;
err: err:
if (it.node) if (it.node)
...@@ -1723,8 +1720,20 @@ EXPORT_SYMBOL(of_parse_phandle_with_fixed_args); ...@@ -1723,8 +1720,20 @@ EXPORT_SYMBOL(of_parse_phandle_with_fixed_args);
int of_count_phandle_with_args(const struct device_node *np, const char *list_name, int of_count_phandle_with_args(const struct device_node *np, const char *list_name,
const char *cells_name) const char *cells_name)
{ {
return __of_parse_phandle_with_args(np, list_name, cells_name, 0, -1, struct of_phandle_iterator it;
NULL); int rc, cur_index = 0;
rc = of_phandle_iterator_init(&it, np, list_name, cells_name, 0);
if (rc)
return rc;
while ((rc = of_phandle_iterator_next(&it)) == 0)
cur_index += 1;
if (rc != -ENOENT)
return rc;
return cur_index;
} }
EXPORT_SYMBOL(of_count_phandle_with_args); EXPORT_SYMBOL(of_count_phandle_with_args);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册