From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerry Van Baren Date: Thu, 17 May 2007 06:38:32 -0400 Subject: [U-Boot-Users] fdt_find_compatible_node() and friends In-Reply-To: <463C80BB.5080305@grandegger.com> References: <4639F61F.2050506@grandegger.com> <4639FC57.8080403@smiths-aerospace.com> <463C80BB.5080305@grandegger.com> Message-ID: <464C30A8.3000002@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Wolfgang Grandegger wrote: > Hi Jerry, > > Jerry Van Baren wrote: >> Wolfgang Grandegger wrote: >>> Hi Jerry, >>> >>> before re-coding fdt_find_compatible_node(), some more comments. >>> >>> After browsing more carefully the FDT related code of "arch/powerpc" >>> I think we also need, apart from fdt_find_compatible_node() and >>> fdt_path_offset(), fdt_find_node_by_type() and maybe >>> fdt_find_node_by_name(). These functions do a sequential scan of all >>> devices starting at the beginning or after a specified node. They >>> actually ignore the hierarchy. Do you agree? >>> BTW: any reason why not using the more compatible name >>> fdt_find_node_by_path() for fdt_path_offset()? >>> >>> Wolfgang. >> >> Hi WolfganG, >> >> I'm not an expert, I just fake it on email ;-). With that disclaimer, >> I would agree with you WRT all the "find" functions. The original >> libfdt code does not support any "find" functions, so we will need to >> add them. >> >> WRT to fdt_find_node_by_path() vs. fdt_path_offset(), I vaguely recall >> some renames happening in the kernel source, but I cannot find them so >> my memory likely is faulty[1]. I would be strongly in favor of >> following the kernel's lead and renaming that function since we are >> already divergent from the original libfdt. The kernel's name is a >> much better description. > > OK, I have attached two new patches replacing fdt_path_offset() with > fdt_find_node_by_path() and implementing fdt_find_node_by_type() and > fdt_find_compatible_node(). This version does not use static variables > any more to scan the nodes without re-scanning, but looks for the end > tag. I think it's (almost) good enough to be applied. > > Wolfgang. > > > ------------------------------------------------------------------------ > > Replace fdt_node_offset() with fdt_find_node_by_path(). > > From: Wolfgang Grandegger > > The new name matches more closely the kernel's name, which is also > a much better description. > --- > > board/mpc8360emds/mpc8360emds.c | 2 +- > board/mpc8360emds/pci.c | 2 +- > common/cmd_fdt.c | 6 +++--- > common/fdt_support.c | 10 +++++----- > cpu/mpc83xx/cpu.c | 2 +- > include/libfdt.h | 2 +- > libfdt/fdt_ro.c | 2 +- > 7 files changed, 13 insertions(+), 13 deletions(-) Hi Wolfgang G, I've applied your patches to my local (working) repository and will push the changes tonight (my tonight, your tomorrow ;-). I created a subroutine out of three snippets of code in cmd_fdt.c which your fdt_find_node_by_path() change fixed up so I had to fix one line in the new subroutine by hand. Not bad at all considering the changes I made in that file. Your patches have a From: line rather than a Signed-off-by: line, I presume it is OK (and desirable) for me to change it into a Signed-off-by: line (I'll add my own Acked-by: line). Thanks, gvb