public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] fdt: Add function to alloc phandle values
@ 2010-07-09 21:22 Kumar Gala
  2010-07-09 21:28 ` Timur Tabi
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Kumar Gala @ 2010-07-09 21:22 UTC (permalink / raw)
  To: u-boot

If we are creating reference (handles) to nodes in a device tree we need
to first create a new phandle in node and this needs a new phandle
value.  So we search through the whole dtb to find the max phandle value
and return the next greater value for a new phandle allocation.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 common/fdt_support.c  |   16 ++++++++++++++++
 include/fdt_support.h |    1 +
 2 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index 718b635..30c662a 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -1151,4 +1151,20 @@ int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
 	return -FDT_ERR_NOTFOUND;
 }
 
+/**
+ * fdt_alloc_phandle: Return next free phandle value
+ *
+ * @blob: ptr to device tree
+ */
+int fdt_alloc_phandle(void *blob)
+{
+	int offset, len, phandle = 0;
+	const u32 *val;
+        for (offset = fdt_next_node(blob, -1, NULL); offset >= 0;
+             offset = fdt_next_node(blob, offset, NULL)) {
+                val = fdt_getprop(blob, offset, "linux,phandle", &len);
+		if (val) phandle = max(*val, phandle);
+        }
 
+	return phandle + 1;
+}
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 54af9fe..871ef45 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -86,6 +86,7 @@ void fdt_del_node_and_alias(void *blob, const char *alias);
 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);
+int fdt_alloc_phandle(void *blob);
 
 #endif /* ifdef CONFIG_OF_LIBFDT */
 #endif /* ifndef __FDT_SUPPORT_H */
-- 
1.6.0.6

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

* [U-Boot] [PATCH] fdt: Add function to alloc phandle values
  2010-07-09 21:22 [U-Boot] [PATCH] fdt: Add function to alloc phandle values Kumar Gala
@ 2010-07-09 21:28 ` Timur Tabi
  2010-07-10 11:51 ` Sergei Shtylyov
  2010-07-10 13:25 ` [U-Boot] [PATCH v3] " Kumar Gala
  2 siblings, 0 replies; 9+ messages in thread
From: Timur Tabi @ 2010-07-09 21:28 UTC (permalink / raw)
  To: u-boot

On Fri, Jul 9, 2010 at 4:22 PM, Kumar Gala <galak@kernel.crashing.org> wrote:

> +int fdt_alloc_phandle(void *blob)
> +{
> + ? ? ? int offset, len, phandle = 0;
> + ? ? ? const u32 *val;
> + ? ? ? ?for (offset = fdt_next_node(blob, -1, NULL); offset >= 0;
> + ? ? ? ? ? ? offset = fdt_next_node(blob, offset, NULL)) {
> + ? ? ? ? ? ? ? ?val = fdt_getprop(blob, offset, "linux,phandle", &len);
> + ? ? ? ? ? ? ? if (val) phandle = max(*val, phandle);
> + ? ? ? ?}
>
> + ? ? ? return phandle + 1;
> +}

If you incorporate my patch titled, "libfdt: introduce function
fdt_get_max_phandle", you can simplify this function.

Wolfgang rejected that patch because I didn't include any code that
called fdt_get_max_phandle().  I see you're doing the same thing here
with fdt_alloc_phandle().  It will be interesting to see if Wolfgang
rejects your patch.

-- 
Timur Tabi
Linux kernel developer at Freescale

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

* [U-Boot] [PATCH] fdt: Add function to alloc phandle values
  2010-07-09 21:22 [U-Boot] [PATCH] fdt: Add function to alloc phandle values Kumar Gala
  2010-07-09 21:28 ` Timur Tabi
@ 2010-07-10 11:51 ` Sergei Shtylyov
  2010-07-10 13:23   ` [U-Boot] [PATCH v2] " Kumar Gala
  2010-07-10 13:25 ` [U-Boot] [PATCH v3] " Kumar Gala
  2 siblings, 1 reply; 9+ messages in thread
From: Sergei Shtylyov @ 2010-07-10 11:51 UTC (permalink / raw)
  To: u-boot

Hello.

Kumar Gala wrote:

> If we are creating reference (handles) to nodes in a device tree we need
> to first create a new phandle in node and this needs a new phandle
> value.  So we search through the whole dtb to find the max phandle value
> and return the next greater value for a new phandle allocation.

> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
[...]
> diff --git a/common/fdt_support.c b/common/fdt_support.c
> index 718b635..30c662a 100644
> --- a/common/fdt_support.c
> +++ b/common/fdt_support.c
> @@ -1151,4 +1151,20 @@ int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
>  	return -FDT_ERR_NOTFOUND;
>  }
>  
> +/**
> + * fdt_alloc_phandle: Return next free phandle value
> + *
> + * @blob: ptr to device tree
> + */
> +int fdt_alloc_phandle(void *blob)
> +{
> +	int offset, len, phandle = 0;
> +	const u32 *val;

    Shouldn't there be an emoty line after declarations?

> +        for (offset = fdt_next_node(blob, -1, NULL); offset >= 0;
> +             offset = fdt_next_node(blob, offset, NULL)) {
> +                val = fdt_getprop(blob, offset, "linux,phandle", &len);

    You indented the above 3 lines with spaces, other with tabs.

> +		if (val) phandle = max(*val, phandle);
> +        }

    Another space-indented line...

WBR, Sergei

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

* [U-Boot] [PATCH v2] fdt: Add function to alloc phandle values
  2010-07-10 11:51 ` Sergei Shtylyov
@ 2010-07-10 13:23   ` Kumar Gala
  0 siblings, 0 replies; 9+ messages in thread
From: Kumar Gala @ 2010-07-10 13:23 UTC (permalink / raw)
  To: u-boot

If we are creating reference (handles) to nodes in a device tree we need
to first create a new phandle in node and this needs a new phandle
value.  So we search through the whole dtb to find the max phandle value
and return the next greater value for a new phandle allocation.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
* Hopefully fixed white space issues

 common/fdt_support.c  |   18 ++++++++++++++++++
 include/fdt_support.h |    1 +
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index 718b635..65751aa 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -1151,4 +1151,22 @@ int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
 	return -FDT_ERR_NOTFOUND;
 }
 
+/**
+ * fdt_alloc_phandle: Return next free phandle value
+ *
+ * @blob: ptr to device tree
+ */
+int fdt_alloc_phandle(void *blob)
+{
+	int offset, len, phandle = 0;
+	const u32 *val;
 
+        for (offset = fdt_next_node(blob, -1, NULL); offset >= 0;
+	     offset = fdt_next_node(blob, offset, NULL)) {
+		val = fdt_getprop(blob, offset, "linux,phandle", &len);
+		if (val)
+			phandle = max(*val, phandle);
+        }
+
+	return phandle + 1;
+}
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 54af9fe..871ef45 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -86,6 +86,7 @@ void fdt_del_node_and_alias(void *blob, const char *alias);
 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);
+int fdt_alloc_phandle(void *blob);
 
 #endif /* ifdef CONFIG_OF_LIBFDT */
 #endif /* ifndef __FDT_SUPPORT_H */
-- 
1.6.0.6

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

* [U-Boot] [PATCH v3] fdt: Add function to alloc phandle values
  2010-07-09 21:22 [U-Boot] [PATCH] fdt: Add function to alloc phandle values Kumar Gala
  2010-07-09 21:28 ` Timur Tabi
  2010-07-10 11:51 ` Sergei Shtylyov
@ 2010-07-10 13:25 ` Kumar Gala
  2010-07-10 18:44   ` Timur Tabi
  2010-07-18  3:22   ` Jerry Van Baren
  2 siblings, 2 replies; 9+ messages in thread
From: Kumar Gala @ 2010-07-10 13:25 UTC (permalink / raw)
  To: u-boot

If we are creating reference (handles) to nodes in a device tree we need
to first create a new phandle in node and this needs a new phandle
value.  So we search through the whole dtb to find the max phandle value
and return the next greater value for a new phandle allocation.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
* Try this whitespace cleanup again

 common/fdt_support.c  |   18 ++++++++++++++++++
 include/fdt_support.h |    1 +
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/common/fdt_support.c b/common/fdt_support.c
index 718b635..166f5e1 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -1151,4 +1151,22 @@ int fdt_node_offset_by_compat_reg(void *blob, const char *compat,
 	return -FDT_ERR_NOTFOUND;
 }
 
+/**
+ * fdt_alloc_phandle: Return next free phandle value
+ *
+ * @blob: ptr to device tree
+ */
+int fdt_alloc_phandle(void *blob)
+{
+	int offset, len, phandle = 0;
+	const u32 *val;
+
+	for (offset = fdt_next_node(blob, -1, NULL); offset >= 0;
+	     offset = fdt_next_node(blob, offset, NULL)) {
+		val = fdt_getprop(blob, offset, "linux,phandle", &len);
+		if (val)
+			phandle = max(*val, phandle);
+	}
 
+	return phandle + 1;
+}
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 54af9fe..871ef45 100644
--- a/include/fdt_support.h
+++ b/include/fdt_support.h
@@ -86,6 +86,7 @@ void fdt_del_node_and_alias(void *blob, const char *alias);
 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);
+int fdt_alloc_phandle(void *blob);
 
 #endif /* ifdef CONFIG_OF_LIBFDT */
 #endif /* ifndef __FDT_SUPPORT_H */
-- 
1.6.0.6

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

* [U-Boot] [PATCH v3] fdt: Add function to alloc phandle values
  2010-07-10 13:25 ` [U-Boot] [PATCH v3] " Kumar Gala
@ 2010-07-10 18:44   ` Timur Tabi
  2010-07-11 15:04     ` Kumar Gala
  2010-07-18  3:22   ` Jerry Van Baren
  1 sibling, 1 reply; 9+ messages in thread
From: Timur Tabi @ 2010-07-10 18:44 UTC (permalink / raw)
  To: u-boot

On Sat, Jul 10, 2010 at 8:25 AM, Kumar Gala <galak@kernel.crashing.org> wrote:
> If we are creating reference (handles) to nodes in a device tree we need
> to first create a new phandle in node and this needs a new phandle
> value. ?So we search through the whole dtb to find the max phandle value
> and return the next greater value for a new phandle allocation.
>
> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>

I still think you should merge my fdt_get_max_phandle() function into
this patch.  The two functions are related and can share code.

-- 
Timur Tabi
Linux kernel developer at Freescale

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

* [U-Boot] [PATCH v3] fdt: Add function to alloc phandle values
  2010-07-10 18:44   ` Timur Tabi
@ 2010-07-11 15:04     ` Kumar Gala
  0 siblings, 0 replies; 9+ messages in thread
From: Kumar Gala @ 2010-07-11 15:04 UTC (permalink / raw)
  To: u-boot


On Jul 10, 2010, at 1:44 PM, Timur Tabi wrote:

> On Sat, Jul 10, 2010 at 8:25 AM, Kumar Gala <galak@kernel.crashing.org> wrote:
>> If we are creating reference (handles) to nodes in a device tree we need
>> to first create a new phandle in node and this needs a new phandle
>> value.  So we search through the whole dtb to find the max phandle value
>> and return the next greater value for a new phandle allocation.
>> 
>> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
> 
> I still think you should merge my fdt_get_max_phandle() function into
> this patch.  The two functions are related and can share code.

I'm replacing fdt_get_max_phandle w/fdt_alloc_phandle in our tree's.  As what we are doing is allocating a phandle value.

- k

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

* [U-Boot] [PATCH v3] fdt: Add function to alloc phandle values
  2010-07-10 13:25 ` [U-Boot] [PATCH v3] " Kumar Gala
  2010-07-10 18:44   ` Timur Tabi
@ 2010-07-18  3:22   ` Jerry Van Baren
  2010-07-26 18:14     ` Kumar Gala
  1 sibling, 1 reply; 9+ messages in thread
From: Jerry Van Baren @ 2010-07-18  3:22 UTC (permalink / raw)
  To: u-boot

On 07/10/2010 09:25 AM, Kumar Gala wrote:
> If we are creating reference (handles) to nodes in a device tree we need
> to first create a new phandle in node and this needs a new phandle
> value.  So we search through the whole dtb to find the max phandle value
> and return the next greater value for a new phandle allocation.
>
> Signed-off-by: Kumar Gala<galak@kernel.crashing.org>
> ---
> * Try this whitespace cleanup again
>
>   common/fdt_support.c  |   18 ++++++++++++++++++
>   include/fdt_support.h |    1 +
>   2 files changed, 19 insertions(+), 0 deletions(-)

Acked-by: Gerald Van Baren <vanbaren@cideas.com>

Best regards,
gvb

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

* [U-Boot] [PATCH v3] fdt: Add function to alloc phandle values
  2010-07-18  3:22   ` Jerry Van Baren
@ 2010-07-26 18:14     ` Kumar Gala
  0 siblings, 0 replies; 9+ messages in thread
From: Kumar Gala @ 2010-07-26 18:14 UTC (permalink / raw)
  To: u-boot


On Jul 17, 2010, at 10:22 PM, Jerry Van Baren wrote:

> On 07/10/2010 09:25 AM, Kumar Gala wrote:
>> If we are creating reference (handles) to nodes in a device tree we need
>> to first create a new phandle in node and this needs a new phandle
>> value.  So we search through the whole dtb to find the max phandle value
>> and return the next greater value for a new phandle allocation.
>> 
>> Signed-off-by: Kumar Gala<galak@kernel.crashing.org>
>> ---
>> * Try this whitespace cleanup again
>> 
>>  common/fdt_support.c  |   18 ++++++++++++++++++
>>  include/fdt_support.h |    1 +
>>  2 files changed, 19 insertions(+), 0 deletions(-)
> 
> Acked-by: Gerald Van Baren <vanbaren@cideas.com>
> 
> Best regards,
> gvb

applied to 85xx

- k

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

end of thread, other threads:[~2010-07-26 18:14 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-09 21:22 [U-Boot] [PATCH] fdt: Add function to alloc phandle values Kumar Gala
2010-07-09 21:28 ` Timur Tabi
2010-07-10 11:51 ` Sergei Shtylyov
2010-07-10 13:23   ` [U-Boot] [PATCH v2] " Kumar Gala
2010-07-10 13:25 ` [U-Boot] [PATCH v3] " Kumar Gala
2010-07-10 18:44   ` Timur Tabi
2010-07-11 15:04     ` Kumar Gala
2010-07-18  3:22   ` Jerry Van Baren
2010-07-26 18:14     ` Kumar Gala

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