*** PROBABLY SPAM *** [PATCH 01/12] oftree: add of_fix_tree()
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Sun Dec 18 08:07:42 EST 2011
HI,
what is the impact on the binary size??
Best Regards,
J.
On 11:30 Thu 15 Dec , Sascha Hauer wrote:
> 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 at pengutronix.de>
> ---
> common/oftree.c | 22 +++++++++++++++-------
> include/of.h | 1 +
> 2 files changed, 16 insertions(+), 7 deletions(-)
>
> diff --git a/common/oftree.c b/common/oftree.c
> index 2a2f464..a657d31 100644
> --- a/common/oftree.c
> +++ b/common/oftree.c
> @@ -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;
> +}
> diff --git a/include/of.h b/include/of.h
> index c2661ef..609b3b5 100644
> --- a/include/of.h
> +++ b/include/of.h
> @@ -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,
> --
> 1.7.7.3
>
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
More information about the barebox
mailing list