aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-powerpc
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2006-05-01 15:16:12 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-05-01 21:17:46 -0400
commit953039c8df7beb2694814e20e2707a77d335a2e3 (patch)
tree8e8d6af92441d70074efc24f55cf5965ae28447a /include/asm-powerpc
parentbed120c64eb07b6838bb758109811484af8cebba (diff)
[PATCH] powerpc: Allow devices to register with numa topology
Change of_node_to_nid() to traverse the device tree, looking for a numa id. Cell uses this to assign ids to SPUs, which are children of the CPU node. Existing users of of_node_to_nid() are altered to use of_node_to_nid_single(), which doesn't do the traversal. Export an attach_sysdev_to_node() function, allowing system devices (eg. SPUs) to link themselves into the numa topology in sysfs. Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-powerpc')
-rw-r--r--include/asm-powerpc/topology.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/asm-powerpc/topology.h b/include/asm-powerpc/topology.h
index 1e19cd00af25..87362a05542b 100644
--- a/include/asm-powerpc/topology.h
+++ b/include/asm-powerpc/topology.h
@@ -4,6 +4,9 @@
4 4
5#include <linux/config.h> 5#include <linux/config.h>
6 6
7struct sys_device;
8struct device_node;
9
7#ifdef CONFIG_NUMA 10#ifdef CONFIG_NUMA
8 11
9#include <asm/mmzone.h> 12#include <asm/mmzone.h>
@@ -27,6 +30,8 @@ static inline int node_to_first_cpu(int node)
27 return first_cpu(tmp); 30 return first_cpu(tmp);
28} 31}
29 32
33int of_node_to_nid(struct device_node *device);
34
30#define pcibus_to_node(node) (-1) 35#define pcibus_to_node(node) (-1)
31#define pcibus_to_cpumask(bus) (cpu_online_map) 36#define pcibus_to_cpumask(bus) (cpu_online_map)
32 37
@@ -57,10 +62,29 @@ static inline int node_to_first_cpu(int node)
57 62
58extern void __init dump_numa_cpu_topology(void); 63extern void __init dump_numa_cpu_topology(void);
59 64
65extern int sysfs_add_device_to_node(struct sys_device *dev, int nid);
66extern void sysfs_remove_device_from_node(struct sys_device *dev, int nid);
67
60#else 68#else
61 69
70static inline int of_node_to_nid(struct device_node *device)
71{
72 return 0;
73}
74
62static inline void dump_numa_cpu_topology(void) {} 75static inline void dump_numa_cpu_topology(void) {}
63 76
77static inline int sysfs_add_device_to_node(struct sys_device *dev, int nid)
78{
79 return 0;
80}
81
82static inline void sysfs_remove_device_from_node(struct sys_device *dev,
83 int nid)
84{
85}
86
87
64#include <asm-generic/topology.h> 88#include <asm-generic/topology.h>
65 89
66#endif /* CONFIG_NUMA */ 90#endif /* CONFIG_NUMA */