On Sat, 13 Aug 2011 00:24:33 +0800, Scott Wood <scottw...@freescale.com> wrote:
> On 08/11/2011 10:18 PM, Chunhe Lan wrote: >> Add a fdt_set_node_status function that will set the specified >> node's status to the value contained in "status". If the node >> doesn't have "status" property that will be created. >> >> Signed-off-by: Chunhe Lan <chunhe....@freescale.com> >> --- >> common/fdt_support.c | 17 ++++++++++++++++- >> include/fdt_support.h | 3 +++ >> 2 files changed, 19 insertions(+), 1 deletions(-) >> >> diff --git a/common/fdt_support.c b/common/fdt_support.c >> index 19b2ef6..384523b 100644 >> --- a/common/fdt_support.c >> +++ b/common/fdt_support.c >> @@ -2,7 +2,7 @@ >> * (C) Copyright 2007 >> * Gerald Van Baren, Custom IDEAS, vanba...@cideas.com >> * >> - * Copyright 2010 Freescale Semiconductor, Inc. >> + * Copyright 2010-2011 Freescale Semiconductor, Inc. >> * >> * See file CREDITS for list of people who contributed to this >> * project. >> @@ -904,6 +904,21 @@ void fdt_del_node_and_alias(void *blob, const char >> *alias) >> fdt_delprop(blob, off, alias); >> } >> >> +/* >> + * Sets the specified node's status to the value contained in "status". >> + * If the first character of the specified path is "/" then we use >> + * alias as a path. Otherwise, we look for an alias of that name. >> + */ >> +void fdt_set_node_status(void *fdt, const char *alias, const char >> *status) >> +{ >> + const char *path = fdt_get_alias(fdt, alias); >> + >> + if (!path) >> + path = alias; >> + >> + do_fixup_by_path(fdt, path, "status", status, strlen(status) + 1, 1); >> +} > > fdt_get_alias() is not needed -- do_fixup_by_path() calls > fdt_path_offset() which handles aliases. > > Instead of something specific to status, how about adding > do_fixup_by_path_string()? I think that function of do_fixup_by_path should have completed that function. Here, we only want to set the status property of node. At the same time, Tabi Timur also is using the function of fdt_set_node_status. >> /* Helper to read a big number; size is in cells (not bytes) */ >> static inline u64 of_read_number(const __be32 *cell, int size) >> { >> diff --git a/include/fdt_support.h b/include/fdt_support.h >> index 863024f..74d7c83 100644 >> --- a/include/fdt_support.h >> +++ b/include/fdt_support.h >> @@ -2,6 +2,8 @@ >> * (C) Copyright 2007 >> * Gerald Van Baren, Custom IDEAS, vanba...@cideas.com >> * >> + * Copyright (C) 2011 Freescale Semiconductor, Inc. >> + * >> * See file CREDITS for list of people who contributed to this >> * project. >> * >> @@ -85,6 +87,7 @@ int fdt_fixup_nor_flash_size(void *blob); >> >> void fdt_fixup_mtdparts(void *fdt, void *node_info, int >> node_info_size); >> void fdt_del_node_and_alias(void *blob, const char *alias); >> +void fdt_set_node_status(void *fdt, const char *alias, const char >> *status); >> u64 fdt_translate_address(void *blob, int node_offset, const u32 >> *in_addr); >> int fdt_node_offset_by_compat_reg(void *blob, const char *compat, >> phys_addr_t compat_off); > > A copyright line for a single function prototype? Thanks. I will remove this line. -Jack Lan _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot