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;
|
||||
}
|
||||
|
||||
struct fdt_header *of_get_fixed_tree(void)
|
||||
int of_fix_tree(struct fdt_header *fdt)
|
||||
{
|
||||
struct of_fixup *of_fixup;
|
||||
int ret;
|
||||
|
||||
if (!barebox_fdt)
|
||||
return NULL;
|
||||
|
||||
list_for_each_entry(of_fixup, &of_fixup_list, list) {
|
||||
ret = of_fixup->fixup(barebox_fdt);
|
||||
ret = of_fixup->fixup(fdt);
|
||||
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);
|
||||
|
||||
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 fdt_find_and_setprop(struct fdt_header *fdt, const char *node, const char *prop,
|
||||
|
|
Loading…
Reference in New Issue