Patchwork [1/2] powerpc and sparc: Introduce dev_archdata node accessors

login
register
mail settings
Submitter Anton Vorontsov
Date Nov. 28, 2008, 7:13 p.m.
Message ID <20081128191323.GA27260@oksana.dev.rtsoft.ru>
Download mbox | patch
Permalink /patch/11325/
State Accepted
Commit 3f3b1632022fcc8317fa3b3c1236471415b3a6b8
Delegated to: Paul Mackerras
Headers show

Comments

Anton Vorontsov - Nov. 28, 2008, 7:13 p.m.
The name of the device_node field differ across the platforms, so we
have to implement inlined accessors. This is needed to avoid ugly
#ifdef in the generic code.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
---
 arch/powerpc/include/asm/device.h |   12 ++++++++++++
 arch/sparc/include/asm/device.h   |   12 ++++++++++++
 2 files changed, 24 insertions(+), 0 deletions(-)
Michael Ellerman - Nov. 30, 2008, 10:23 p.m.
On Fri, 2008-11-28 at 22:13 +0300, Anton Vorontsov wrote:
> The name of the device_node field differ across the platforms, so we
> have to implement inlined accessors. This is needed to avoid ugly
> #ifdef in the generic code.


My grep skills may not be 1337 enough, but I only see maybe three uses
of arch_data.prom_node in arch/sparc:

# git grep "\.prom_node" arch/sparc/ 
arch/sparc/include/asm/fb.h:    node = dev->archdata.prom_node;
arch/sparc/kernel/smp.c:        cpu_data(id).prom_node = cpu_node;
arch/sparc/kernel/of_device.c:  sd->prom_node = dp;


And about 15 in arch/powerpc.

Would it be simpler to have sparc use "of_node"? DaveM?

cheers

Patch

diff --git a/arch/powerpc/include/asm/device.h b/arch/powerpc/include/asm/device.h
index dfd504c..7d2277c 100644
--- a/arch/powerpc/include/asm/device.h
+++ b/arch/powerpc/include/asm/device.h
@@ -18,4 +18,16 @@  struct dev_archdata {
 	void			*dma_data;
 };
 
+static inline void dev_archdata_set_node(struct dev_archdata *ad,
+					 struct device_node *np)
+{
+	ad->of_node = np;
+}
+
+static inline struct device_node *
+dev_archdata_get_node(const struct dev_archdata *ad)
+{
+	return ad->of_node;
+}
+
 #endif /* _ASM_POWERPC_DEVICE_H */
diff --git a/arch/sparc/include/asm/device.h b/arch/sparc/include/asm/device.h
index 19790eb..3702e08 100644
--- a/arch/sparc/include/asm/device.h
+++ b/arch/sparc/include/asm/device.h
@@ -20,4 +20,16 @@  struct dev_archdata {
 	int			numa_node;
 };
 
+static inline void dev_archdata_set_node(struct dev_archdata *ad,
+					 struct device_node *np)
+{
+	ad->prom_node = np;
+}
+
+static inline struct device_node *
+dev_archdata_get_node(const struct dev_archdata *ad)
+{
+	return ad->prom_node;
+}
+
 #endif /* _ASM_SPARC_DEVICE_H */