[U-Boot] [PATCH 1/2] fdt: Add a fdt_set_node_status function

Lan Chunhe b25806 at freescale.com
Mon Aug 15 05:40:31 CEST 2011


On Sat, 13 Aug 2011 00:24:33 +0800, Scott Wood <scottwood at 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.Lan at 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, vanbaren at 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, vanbaren at 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



More information about the U-Boot mailing list