linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Grant Likely <grant.likely@secretlab.ca>
To: linuxppc-dev@lists.ozlabs.org,
	devicetree-discuss@lists.ozlabs.org, benh@kernel.crashing.org,
	sfr@canb.auug.org.au, davem@davemloft.net,
	sparclinux@vger.kernel.org, monstr@monstr.eu,
	microblaze-uclinux@itee.uq.edu.au
Subject: [PATCH 05/11] of/flattree: merge of_get_flat_dt_prop
Date: Thu, 05 Nov 2009 00:46:13 -0700	[thread overview]
Message-ID: <20091105074606.10460.23775.stgit@angua> (raw)
In-Reply-To: <20091105073728.10460.6061.stgit@angua>

Merge common code between PowerPC and Microblaze

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
---

 arch/microblaze/kernel/prom.c |   42 ----------------------------------------
 arch/powerpc/kernel/prom.c    |   42 ----------------------------------------
 drivers/of/fdt.c              |   43 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 43 insertions(+), 84 deletions(-)

diff --git a/arch/microblaze/kernel/prom.c b/arch/microblaze/kernel/prom.c
index 7eb6f8b..d75c625 100644
--- a/arch/microblaze/kernel/prom.c
+++ b/arch/microblaze/kernel/prom.c
@@ -50,48 +50,6 @@ typedef u32 cell_t;
 /* export that to outside world */
 struct device_node *of_chosen;
 
-/**
- * This function can be used within scan_flattened_dt callback to get
- * access to properties
- */
-void *__init of_get_flat_dt_prop(unsigned long node, const char *name,
-				unsigned long *size)
-{
-	unsigned long p = node;
-
-	do {
-		u32 tag = *((u32 *)p);
-		u32 sz, noff;
-		const char *nstr;
-
-		p += 4;
-		if (tag == OF_DT_NOP)
-			continue;
-		if (tag != OF_DT_PROP)
-			return NULL;
-
-		sz = *((u32 *)p);
-		noff = *((u32 *)(p + 4));
-		p += 8;
-		if (initial_boot_params->version < 0x10)
-			p = _ALIGN(p, sz >= 8 ? 8 : 4);
-
-		nstr = find_flat_dt_string(noff);
-		if (nstr == NULL) {
-			printk(KERN_WARNING "Can't find property index"
-				" name !\n");
-			return NULL;
-		}
-		if (strcmp(name, nstr) == 0) {
-			if (size)
-				*size = sz;
-			return (void *)p;
-		}
-		p += sz;
-		p = _ALIGN(p, 4);
-	} while (1);
-}
-
 int __init of_flat_dt_is_compatible(unsigned long node, const char *compat)
 {
 	const char *cp;
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index b5d5f85..cd0a2bf 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -80,48 +80,6 @@ extern rwlock_t devtree_lock;	/* temporary while merging */
 /* export that to outside world */
 struct device_node *of_chosen;
 
-/**
- * This  function can be used within scan_flattened_dt callback to get
- * access to properties
- */
-void* __init of_get_flat_dt_prop(unsigned long node, const char *name,
-				 unsigned long *size)
-{
-	unsigned long p = node;
-
-	do {
-		u32 tag = *((u32 *)p);
-		u32 sz, noff;
-		const char *nstr;
-
-		p += 4;
-		if (tag == OF_DT_NOP)
-			continue;
-		if (tag != OF_DT_PROP)
-			return NULL;
-
-		sz = *((u32 *)p);
-		noff = *((u32 *)(p + 4));
-		p += 8;
-		if (initial_boot_params->version < 0x10)
-			p = _ALIGN(p, sz >= 8 ? 8 : 4);
-
-		nstr = find_flat_dt_string(noff);
-		if (nstr == NULL) {
-			printk(KERN_WARNING "Can't find property index"
-			       " name !\n");
-			return NULL;
-		}
-		if (strcmp(name, nstr) == 0) {
-			if (size)
-				*size = sz;
-			return (void *)p;
-		}
-		p += sz;
-		p = _ALIGN(p, 4);
-	} while(1);
-}
-
 int __init of_flat_dt_is_compatible(unsigned long node, const char *compat)
 {
 	const char* cp;
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index a6e869e..7a51343 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -100,3 +100,46 @@ unsigned long __init of_get_flat_dt_root(void)
 	return _ALIGN(p + strlen((char *)p) + 1, 4);
 }
 
+/**
+ * of_get_flat_dt_prop - Given a node in the flat blob, return the property pointer
+ *
+ * This  function can be used within scan_flattened_dt callback to get
+ * access to properties
+ */
+void *__init of_get_flat_dt_prop(unsigned long node, const char *name,
+				 unsigned long *size)
+{
+	unsigned long p = node;
+
+	do {
+		u32 tag = *((u32 *)p);
+		u32 sz, noff;
+		const char *nstr;
+
+		p += 4;
+		if (tag == OF_DT_NOP)
+			continue;
+		if (tag != OF_DT_PROP)
+			return NULL;
+
+		sz = *((u32 *)p);
+		noff = *((u32 *)(p + 4));
+		p += 8;
+		if (initial_boot_params->version < 0x10)
+			p = _ALIGN(p, sz >= 8 ? 8 : 4);
+
+		nstr = find_flat_dt_string(noff);
+		if (nstr == NULL) {
+			pr_warning("Can't find property index name !\n");
+			return NULL;
+		}
+		if (strcmp(name, nstr) == 0) {
+			if (size)
+				*size = sz;
+			return (void *)p;
+		}
+		p += sz;
+		p = _ALIGN(p, 4);
+	} while (1);
+}
+

  parent reply	other threads:[~2009-11-05  7:46 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-05  7:45 [PATCH 00/11] More OF merge patches Grant Likely
2009-11-05  7:45 ` [PATCH 01/11] of/flattree: merge find_flat_dt_string and initial_boot_params Grant Likely
2009-11-05  8:39   ` Wolfram Sang
2009-11-05  8:45     ` Grant Likely
2009-11-05  7:45 ` [PATCH 02/11] of/flattree: merge of_scan_flat_dt Grant Likely
2009-11-05  8:45   ` Wolfram Sang
2009-11-05  7:45 ` [PATCH 03/11] of/flattree: merge of_get_flat_dt_root Grant Likely
2009-11-05  7:46 ` [PATCH 04/11] of/flattree: remove __init annotations from the header file Grant Likely
2009-11-05  7:46 ` Grant Likely [this message]
2009-11-05  8:49   ` [PATCH 05/11] of/flattree: merge of_get_flat_dt_prop Wolfram Sang
2009-11-05  7:46 ` [PATCH 06/11] of/flattree: Merge of_flat_dt_is_compatible Grant Likely
2009-11-05  7:46 ` [PATCH 07/11] of/flattree: Merge unflatten_dt_node Grant Likely
2009-11-05  8:59   ` Wolfram Sang
2009-11-05  7:46 ` [PATCH 08/11] of/flattree: Merge unflatten_device_tree Grant Likely
2009-11-05  7:47 ` [PATCH 09/11] of: merge prom_{add,remove,modify}_property Grant Likely
2009-11-10 20:33   ` Nathan Fontenot
2009-11-10 21:41     ` Grant Likely
2009-11-05  7:47 ` [PATCH 10/11] of: remove special case definition of of_read_ulong() Grant Likely
2009-11-05  7:47 ` [PATCH 11/11] of/flattree: Merge early_init_dt_check_for_initrd() Grant Likely
2009-11-05 10:11 ` [PATCH 00/11] More OF merge patches Wolfram Sang
2009-11-09 10:35 ` [microblaze-uclinux] " Michal Simek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091105074606.10460.23775.stgit@angua \
    --to=grant.likely@secretlab.ca \
    --cc=benh@kernel.crashing.org \
    --cc=davem@davemloft.net \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=microblaze-uclinux@itee.uq.edu.au \
    --cc=monstr@monstr.eu \
    --cc=sfr@canb.auug.org.au \
    --cc=sparclinux@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).