Loading drivers/of/base.c +23 −6 Original line number Diff line number Diff line Loading @@ -1534,6 +1534,23 @@ int of_phandle_iterator_next(struct of_phandle_iterator *it) return -EINVAL; } int of_phandle_iterator_args(struct of_phandle_iterator *it, uint32_t *args, int size) { int i, count; count = it->cur_count; if (WARN_ON(size < count)) count = size; for (i = 0; i < count; i++) args[i] = be32_to_cpup(it->cur++); return count; } static int __of_parse_phandle_with_args(const struct device_node *np, const char *list_name, const char *cells_name, Loading @@ -1557,13 +1574,13 @@ static int __of_parse_phandle_with_args(const struct device_node *np, goto err; if (out_args) { int i; if (WARN_ON(it.cur_count > MAX_PHANDLE_ARGS)) it.cur_count = MAX_PHANDLE_ARGS; int c; c = of_phandle_iterator_args(&it, out_args->args, MAX_PHANDLE_ARGS); out_args->np = it.node; out_args->args_count = it.cur_count; for (i = 0; i < it.cur_count; i++) out_args->args[i] = be32_to_cpup(it.cur++); out_args->args_count = c; } else { of_node_put(it.node); } Loading include/linux/of.h +10 −0 Original line number Diff line number Diff line Loading @@ -359,6 +359,9 @@ extern int of_phandle_iterator_init(struct of_phandle_iterator *it, int cell_count); extern int of_phandle_iterator_next(struct of_phandle_iterator *it); extern int of_phandle_iterator_args(struct of_phandle_iterator *it, uint32_t *args, int size); extern void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align)); extern int of_alias_get_id(struct device_node *np, const char *stem); Loading Loading @@ -648,6 +651,13 @@ static inline int of_phandle_iterator_next(struct of_phandle_iterator *it) return -ENOSYS; } static inline int of_phandle_iterator_args(struct of_phandle_iterator *it, uint32_t *args, int size) { return 0; } static inline int of_alias_get_id(struct device_node *np, const char *stem) { return -ENOSYS; Loading Loading
drivers/of/base.c +23 −6 Original line number Diff line number Diff line Loading @@ -1534,6 +1534,23 @@ int of_phandle_iterator_next(struct of_phandle_iterator *it) return -EINVAL; } int of_phandle_iterator_args(struct of_phandle_iterator *it, uint32_t *args, int size) { int i, count; count = it->cur_count; if (WARN_ON(size < count)) count = size; for (i = 0; i < count; i++) args[i] = be32_to_cpup(it->cur++); return count; } static int __of_parse_phandle_with_args(const struct device_node *np, const char *list_name, const char *cells_name, Loading @@ -1557,13 +1574,13 @@ static int __of_parse_phandle_with_args(const struct device_node *np, goto err; if (out_args) { int i; if (WARN_ON(it.cur_count > MAX_PHANDLE_ARGS)) it.cur_count = MAX_PHANDLE_ARGS; int c; c = of_phandle_iterator_args(&it, out_args->args, MAX_PHANDLE_ARGS); out_args->np = it.node; out_args->args_count = it.cur_count; for (i = 0; i < it.cur_count; i++) out_args->args[i] = be32_to_cpup(it.cur++); out_args->args_count = c; } else { of_node_put(it.node); } Loading
include/linux/of.h +10 −0 Original line number Diff line number Diff line Loading @@ -359,6 +359,9 @@ extern int of_phandle_iterator_init(struct of_phandle_iterator *it, int cell_count); extern int of_phandle_iterator_next(struct of_phandle_iterator *it); extern int of_phandle_iterator_args(struct of_phandle_iterator *it, uint32_t *args, int size); extern void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align)); extern int of_alias_get_id(struct device_node *np, const char *stem); Loading Loading @@ -648,6 +651,13 @@ static inline int of_phandle_iterator_next(struct of_phandle_iterator *it) return -ENOSYS; } static inline int of_phandle_iterator_args(struct of_phandle_iterator *it, uint32_t *args, int size) { return 0; } static inline int of_alias_get_id(struct device_node *np, const char *stem) { return -ENOSYS; Loading