public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] [RFC libfdt update][PATCH 1/2] Removed some nonused fdt functions and moved fdt_find_and_setprop out of libfdt
@ 2007-10-24 16:06 Kumar Gala
  2007-10-24 16:21 ` Wolfgang Grandegger
  0 siblings, 1 reply; 6+ messages in thread
From: Kumar Gala @ 2007-10-24 16:06 UTC (permalink / raw)
  To: u-boot

Removed:
	fdt_node_is_compatible
	fdt_find_node_by_type
	fdt_find_compatible_node

To ease merge of newer libfdt as we aren't using them anywhere at this time.

Also moved fdt_find_and_setprop out of libfdt into fdt_support.c for the same
reason.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
(Post here as a start towards import of updated libfdt)


 common/fdt_support.c |   26 ++++++++++++
 include/libfdt.h     |    6 ---
 libfdt/fdt_ro.c      |  112 --------------------------------------------------
 libfdt/fdt_rw.c      |   26 ------------
 4 files changed, 26 insertions(+), 144 deletions(-)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index 175d59e..6a5b27a 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -44,6 +44,32 @@ struct fdt_header *fdt;

 /********************************************************************/

+/**
+ * fdt_find_and_setprop: Find a node and set it's property
+ *
+ * @fdt: ptr to device tree
+ * @node: path of node
+ * @prop: property name
+ * @val: ptr to new value
+ * @len: length of new property value
+ * @create: flag to create the property if it doesn't exist
+ *
+ * Convenience function to directly set a property given the path to the node.
+ */
+int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,
+			 const void *val, int len, int create)
+{
+	int nodeoff = fdt_find_node_by_path(fdt, node);
+
+	if (nodeoff < 0)
+		return nodeoff;
+
+	if ((!create) && (fdt_get_property(fdt, nodeoff, prop, 0) == NULL))
+		return 0; /* create flag not set; so exit quietly */
+
+	return fdt_setprop(fdt, nodeoff, prop, val, len);
+}
+
 int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
 {
 	int   nodeoffset;
diff --git a/include/libfdt.h b/include/libfdt.h
index 38c65a9..ba348a9 100644
--- a/include/libfdt.h
+++ b/include/libfdt.h
@@ -78,12 +78,6 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset,
 int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name);

 int fdt_find_node_by_path(const void *fdt, const char *path);
-int fdt_find_node_by_type(const void *fdt, int nodeoffset, const char *type);
-
-int fdt_node_is_compatible(const void *fdt, int nodeoffset,
-			   const char *compat);
-int fdt_find_compatible_node(const void *fdt, int nodeoffset,
-			     const char *type, const char *compat);

 struct fdt_property *fdt_get_property(const void *fdt, int nodeoffset,
 				      const char *name, int *lenp);
diff --git a/libfdt/fdt_ro.c b/libfdt/fdt_ro.c
index 46d525d..347cdaa 100644
--- a/libfdt/fdt_ro.c
+++ b/libfdt/fdt_ro.c
@@ -86,118 +86,6 @@ char *fdt_string(const void *fdt, int stroffset)
 }

 /*
- * Check if the specified node is compatible by comparing the tokens
- * in its "compatible" property with the specified string:
- *
- *   nodeoffset - starting place of the node
- *   compat     - the string to match to one of the tokens in the
- *                "compatible" list.
- */
-int fdt_node_is_compatible(const void *fdt, int nodeoffset,
-			   const char *compat)
-{
-	const char* cp;
-	int cplen, len;
-
-	cp = fdt_getprop(fdt, nodeoffset, "compatible", &cplen);
-	if (cp == NULL)
-		return 0;
-	while (cplen > 0) {
-		if (strncmp(cp, compat, strlen(compat)) == 0)
-			return 1;
-		len = strlen(cp) + 1;
-		cp += len;
-		cplen -= len;
-	}
-
-	return 0;
-}
-
-/*
- * Find a node by its device type property. On success, the offset of that
- * node is returned or an error code otherwise:
- *
- *   nodeoffset - the node to start searching from or 0, the node you pass
- *                will not be searched, only the next one will; typically,
- *                you pass 0 to start the search and then what the previous
- *                call returned.
- *   type       - the device type string to match against.
- */
-int fdt_find_node_by_type(const void *fdt, int nodeoffset, const char *type)
-{
-	int offset, nextoffset;
-	struct fdt_property *prop;
-	uint32_t tag;
-	int len, ret;
-
-	CHECK_HEADER(fdt);
-
-	tag = fdt_next_tag(fdt, nodeoffset, &nextoffset, NULL);
-	if (tag != FDT_BEGIN_NODE)
-		return -FDT_ERR_BADOFFSET;
-	if (nodeoffset)
-		nodeoffset = 0;	/* start searching with next node */
-
-	while (1) {
-		offset = nextoffset;
-		tag = fdt_next_tag(fdt, offset, &nextoffset, NULL);
-
-		switch (tag) {
-		case FDT_BEGIN_NODE:
-			nodeoffset = offset;
-			break;
-
-		case FDT_PROP:
-			if (nodeoffset == 0)
-				break;
-			ret = prop_name_eq(fdt, offset, "device_type",
-					   &prop, &len);
-			if (ret < 0)
-				return ret;
-			else if (ret > 0 &&
-				 strncmp(prop->data, type, len - 1) == 0)
-			    return nodeoffset;
-			break;
-
-		case FDT_END_NODE:
-		case FDT_NOP:
-			break;
-
-		case FDT_END:
-			return -FDT_ERR_NOTFOUND;
-
-		default:
-			return -FDT_ERR_BADSTRUCTURE;
-		}
-	}
-}
-
-/*
- * Find a node based on its device type and one of the tokens in its its
- * "compatible" property. On success, the offset of that node is returned
- * or an error code otherwise:
- *
- *   nodeoffset - the node to start searching from or 0, the node you pass
- *                will not be searched, only the next one will; typically,
- *                you pass 0 to start the search and then what the previous
- *                call returned.
- *   type       - the device type string to match against.
- *   compat     - the string to match to one of the tokens in the
- *                "compatible" list.
- */
-int fdt_find_compatible_node(const void *fdt, int nodeoffset,
-			     const char *type, const char *compat)
-{
-	int offset;
-
-	offset = fdt_find_node_by_type(fdt, nodeoffset, type);
-	if (offset < 0 || fdt_node_is_compatible(fdt, offset, compat))
-		return offset;
-
-	return -FDT_ERR_NOTFOUND;
-}
-
-/*
  * Return the node offset of the node specified by:
  *   parentoffset - starting place (0 to start@the root)
  *   name         - name being searched for
diff --git a/libfdt/fdt_rw.c b/libfdt/fdt_rw.c
index 55fcc41..693bfe4 100644
--- a/libfdt/fdt_rw.c
+++ b/libfdt/fdt_rw.c
@@ -188,32 +188,6 @@ int fdt_setprop(void *fdt, int nodeoffset, const char *name,
 	return 0;
 }

-/**
- * fdt_find_and_setprop: Find a node and set it's property
- *
- * @fdt: ptr to device tree
- * @node: path of node
- * @prop: property name
- * @val: ptr to new value
- * @len: length of new property value
- * @create: flag to create the property if it doesn't exist
- *
- * Convenience function to directly set a property given the path to the node.
- */
-int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,
-			 const void *val, int len, int create)
-{
-	int nodeoff = fdt_find_node_by_path(fdt, node);
-
-	if (nodeoff < 0)
-		return nodeoff;
-
-	if ((!create) && (fdt_get_property(fdt, nodeoff, prop, 0) == NULL))
-		return 0; /* create flag not set; so exit quietly */
-
-	return fdt_setprop(fdt, nodeoff, prop, val, len);
-}
-
 int fdt_delprop(void *fdt, int nodeoffset, const char *name)
 {
 	struct fdt_property *prop;
-- 
1.5.2.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot-Users] [RFC libfdt update][PATCH 1/2] Removed some nonused fdt functions and moved fdt_find_and_setprop out of libfdt
  2007-10-24 16:06 [U-Boot-Users] [RFC libfdt update][PATCH 1/2] Removed some nonused fdt functions and moved fdt_find_and_setprop out of libfdt Kumar Gala
@ 2007-10-24 16:21 ` Wolfgang Grandegger
  2007-10-24 17:00   ` Jerry Van Baren
  0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Grandegger @ 2007-10-24 16:21 UTC (permalink / raw)
  To: u-boot

Kumar Gala wrote:
> Removed:
> 	fdt_node_is_compatible
> 	fdt_find_node_by_type
> 	fdt_find_compatible_node
> 
> To ease merge of newer libfdt as we aren't using them anywhere at this time.

I use them for development (new projects). When can we expect the new 
libfdt to be available in U-Boot?

Wolfgang.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot-Users] [RFC libfdt update][PATCH 1/2] Removed some nonused fdt functions and moved fdt_find_and_setprop out of libfdt
  2007-10-24 16:21 ` Wolfgang Grandegger
@ 2007-10-24 17:00   ` Jerry Van Baren
  2007-10-24 18:04     ` Kumar Gala
  0 siblings, 1 reply; 6+ messages in thread
From: Jerry Van Baren @ 2007-10-24 17:00 UTC (permalink / raw)
  To: u-boot

Wolfgang Grandegger wrote:
> Kumar Gala wrote:
>> Removed:
>> 	fdt_node_is_compatible
>> 	fdt_find_node_by_type
>> 	fdt_find_compatible_node
>>
>> To ease merge of newer libfdt as we aren't using them anywhere at this time.
> 
> I use them for development (new projects). When can we expect the new 
> libfdt to be available in U-Boot?
> 
> Wolfgang.

Hi Kumar, Wolfgang,

My current thought is that we need a place above libfdt where we can put 
our convenience (and difference-of-opinion ;-) utility routines.

I'm thinking
   common/fdt_support.c
would be the place for this.  Then Wolfgang G can put his fdt_* 
kernel-parallel routines (above) in there as well as the utility routine 
that Grant created (find & set, I forgot the exact name).

gvb

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot-Users] [RFC libfdt update][PATCH 1/2] Removed some nonused fdt functions and moved fdt_find_and_setprop out of libfdt
  2007-10-24 17:00   ` Jerry Van Baren
@ 2007-10-24 18:04     ` Kumar Gala
  2007-10-24 23:05       ` Jerry Van Baren
  2007-10-25  7:03       ` Wolfgang Grandegger
  0 siblings, 2 replies; 6+ messages in thread
From: Kumar Gala @ 2007-10-24 18:04 UTC (permalink / raw)
  To: u-boot


On Oct 24, 2007, at 12:00 PM, Jerry Van Baren wrote:

> Wolfgang Grandegger wrote:
>> Kumar Gala wrote:
>>> Removed:
>>> 	fdt_node_is_compatible
>>> 	fdt_find_node_by_type
>>> 	fdt_find_compatible_node
>>>
>>> To ease merge of newer libfdt as we aren't using them anywhere at  
>>> this time.
>> I use them for development (new projects). When can we expect the  
>> new libfdt to be available in U-Boot?
>> Wolfgang.
>
> Hi Kumar, Wolfgang,
>
> My current thought is that we need a place above libfdt where we  
> can put our convenience (and difference-of-opinion ;-) utility  
> routines.
>
> I'm thinking
>   common/fdt_support.c
> would be the place for this.  Then Wolfgang G can put his fdt_*  
> kernel-parallel routines (above) in there as well as the utility  
> routine that Grant created (find & set, I forgot the exact name).

Agreed, I moved Grant's fdt_find_and_setprop into common/fdt_support.c

Also, realize there are equivalent functions to  
fdt_node_is_compatible, etc. in the new libfdt.

- k

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot-Users] [RFC libfdt update][PATCH 1/2] Removed some nonused fdt functions and moved fdt_find_and_setprop out of libfdt
  2007-10-24 18:04     ` Kumar Gala
@ 2007-10-24 23:05       ` Jerry Van Baren
  2007-10-25  7:03       ` Wolfgang Grandegger
  1 sibling, 0 replies; 6+ messages in thread
From: Jerry Van Baren @ 2007-10-24 23:05 UTC (permalink / raw)
  To: u-boot

Kumar Gala wrote:
> On Oct 24, 2007, at 12:00 PM, Jerry Van Baren wrote:
> 
>> Wolfgang Grandegger wrote:
>>> Kumar Gala wrote:
>>>> Removed:
>>>> 	fdt_node_is_compatible
>>>> 	fdt_find_node_by_type
>>>> 	fdt_find_compatible_node
>>>>
>>>> To ease merge of newer libfdt as we aren't using them anywhere at  
>>>> this time.
>>> I use them for development (new projects). When can we expect the  
>>> new libfdt to be available in U-Boot?
>>> Wolfgang.
>> Hi Kumar, Wolfgang,
>>
>> My current thought is that we need a place above libfdt where we  
>> can put our convenience (and difference-of-opinion ;-) utility  
>> routines.
>>
>> I'm thinking
>>   common/fdt_support.c
>> would be the place for this.  Then Wolfgang G can put his fdt_*  
>> kernel-parallel routines (above) in there as well as the utility  
>> routine that Grant created (find & set, I forgot the exact name).
> 
> Agreed, I moved Grant's fdt_find_and_setprop into common/fdt_support.c
> 
> Also, realize there are equivalent functions to  
> fdt_node_is_compatible, etc. in the new libfdt.
> 
> - k

Ahh, right, the brain was shorted, too much caffeine, too little 
caffeine, its hard to get it balanced.

My re-reading reminded me - question for Wolfgang Denk - are Doxygen 
tags in the source code acceptable?

Best regards,
gvb

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot-Users] [RFC libfdt update][PATCH 1/2] Removed some nonused fdt functions and moved fdt_find_and_setprop out of libfdt
  2007-10-24 18:04     ` Kumar Gala
  2007-10-24 23:05       ` Jerry Van Baren
@ 2007-10-25  7:03       ` Wolfgang Grandegger
  1 sibling, 0 replies; 6+ messages in thread
From: Wolfgang Grandegger @ 2007-10-25  7:03 UTC (permalink / raw)
  To: u-boot

Kumar Gala wrote:
> 
> On Oct 24, 2007, at 12:00 PM, Jerry Van Baren wrote:
> 
>> Wolfgang Grandegger wrote:
>>> Kumar Gala wrote:
>>>> Removed:
>>>>     fdt_node_is_compatible
>>>>     fdt_find_node_by_type
>>>>     fdt_find_compatible_node
>>>>
>>>> To ease merge of newer libfdt as we aren't using them anywhere at 
>>>> this time.
>>> I use them for development (new projects). When can we expect the new 
>>> libfdt to be available in U-Boot?
>>> Wolfgang.
>>
>> Hi Kumar, Wolfgang,
>>
>> My current thought is that we need a place above libfdt where we can 
>> put our convenience (and difference-of-opinion ;-) utility routines.
>>
>> I'm thinking
>>   common/fdt_support.c
>> would be the place for this.  Then Wolfgang G can put his fdt_* 
>> kernel-parallel routines (above) in there as well as the utility 
>> routine that Grant created (find & set, I forgot the exact name).
> 
> Agreed, I moved Grant's fdt_find_and_setprop into common/fdt_support.c
> 
> Also, realize there are equivalent functions to fdt_node_is_compatible, 
> etc. in the new libfdt.

Yes, my concern was about removing the functionality for a while but you 
imported the new libfdt in the same patch series. Sorry for the noise.

Wolfgang.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-10-25  7:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-24 16:06 [U-Boot-Users] [RFC libfdt update][PATCH 1/2] Removed some nonused fdt functions and moved fdt_find_and_setprop out of libfdt Kumar Gala
2007-10-24 16:21 ` Wolfgang Grandegger
2007-10-24 17:00   ` Jerry Van Baren
2007-10-24 18:04     ` Kumar Gala
2007-10-24 23:05       ` Jerry Van Baren
2007-10-25  7:03       ` Wolfgang Grandegger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox