oftree: add of_fix_tree()
Currently we have of_get_fixed_tree() which assumes that there is a global variable holding a oftree. This seems not very flexible, so for now introduce a of_fix_tree() which takes an fdt_header as argument and walks the list of registered of fixup functions. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
a746f4685a
commit
56442bb101
|
@ -293,20 +293,28 @@ int of_register_fixup(int (*fixup)(struct fdt_header *))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct fdt_header *of_get_fixed_tree(void)
|
int of_fix_tree(struct fdt_header *fdt)
|
||||||
{
|
{
|
||||||
struct of_fixup *of_fixup;
|
struct of_fixup *of_fixup;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (!barebox_fdt)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
list_for_each_entry(of_fixup, &of_fixup_list, list) {
|
list_for_each_entry(of_fixup, &of_fixup_list, list) {
|
||||||
ret = of_fixup->fixup(barebox_fdt);
|
ret = of_fixup->fixup(fdt);
|
||||||
if (ret)
|
if (ret)
|
||||||
return NULL;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
return barebox_fdt;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct fdt_header *of_get_fixed_tree(void)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (!barebox_fdt)
|
||||||
|
return NULL;
|
||||||
|
ret = of_fix_tree(barebox_fdt);
|
||||||
|
if (ret)
|
||||||
|
return NULL;
|
||||||
|
return barebox_fdt;
|
||||||
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ extern struct fdt_header *barebox_fdt;
|
||||||
int fdt_print(struct fdt_header *working_fdt, const char *pathp);
|
int fdt_print(struct fdt_header *working_fdt, const char *pathp);
|
||||||
|
|
||||||
struct fdt_header *of_get_fixed_tree(void);
|
struct fdt_header *of_get_fixed_tree(void);
|
||||||
|
int of_fix_tree(struct fdt_header *fdt);
|
||||||
int of_register_fixup(int (*fixup)(struct fdt_header *));
|
int of_register_fixup(int (*fixup)(struct fdt_header *));
|
||||||
|
|
||||||
int fdt_find_and_setprop(struct fdt_header *fdt, const char *node, const char *prop,
|
int fdt_find_and_setprop(struct fdt_header *fdt, const char *node, const char *prop,
|
||||||
|
|
Loading…
Reference in New Issue