diff options
author | David S. Miller <davem@davemloft.net> | 2008-12-05 21:16:48 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-12-05 21:16:48 -0500 |
commit | 23dc758e47aeb3cc2414c2ec69b7b3e95f447071 (patch) | |
tree | 70ba39d6f4ed24b67ef987b6fb528abcfbac28a7 /arch/sparc/kernel/prom_common.c | |
parent | 6524036a1e5736a07466208362d83ddf31aae3ac (diff) |
sparc: Move prom_build_devicetree() into prom_common.c
To make this work we provide a dummy nop implementation
of of_fill_in_cpu_data() for sparc32.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/prom_common.c')
-rw-r--r-- | arch/sparc/kernel/prom_common.c | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/arch/sparc/kernel/prom_common.c b/arch/sparc/kernel/prom_common.c index 3b5de2f3fcd1..95e8e5d1b0fb 100644 --- a/arch/sparc/kernel/prom_common.c +++ b/arch/sparc/kernel/prom_common.c | |||
@@ -216,8 +216,8 @@ static char * __init get_one_property(phandle node, const char *name) | |||
216 | return buf; | 216 | return buf; |
217 | } | 217 | } |
218 | 218 | ||
219 | struct device_node * __init prom_create_node(phandle node, | 219 | static struct device_node * __init prom_create_node(phandle node, |
220 | struct device_node *parent) | 220 | struct device_node *parent) |
221 | { | 221 | { |
222 | struct device_node *dp; | 222 | struct device_node *dp; |
223 | 223 | ||
@@ -261,9 +261,9 @@ static char * __init build_full_name(struct device_node *dp) | |||
261 | return n; | 261 | return n; |
262 | } | 262 | } |
263 | 263 | ||
264 | struct device_node * __init prom_build_tree(struct device_node *parent, | 264 | static struct device_node * __init prom_build_tree(struct device_node *parent, |
265 | phandle node, | 265 | phandle node, |
266 | struct device_node ***nextp) | 266 | struct device_node ***nextp) |
267 | { | 267 | { |
268 | struct device_node *ret = NULL, *prev_sibling = NULL; | 268 | struct device_node *ret = NULL, *prev_sibling = NULL; |
269 | struct device_node *dp; | 269 | struct device_node *dp; |
@@ -293,3 +293,25 @@ struct device_node * __init prom_build_tree(struct device_node *parent, | |||
293 | 293 | ||
294 | return ret; | 294 | return ret; |
295 | } | 295 | } |
296 | |||
297 | unsigned int prom_early_allocated __initdata; | ||
298 | |||
299 | void __init prom_build_devicetree(void) | ||
300 | { | ||
301 | struct device_node **nextp; | ||
302 | |||
303 | allnodes = prom_create_node(prom_root_node, NULL); | ||
304 | allnodes->path_component_name = ""; | ||
305 | allnodes->full_name = "/"; | ||
306 | |||
307 | nextp = &allnodes->allnext; | ||
308 | allnodes->child = prom_build_tree(allnodes, | ||
309 | prom_getchild(allnodes->node), | ||
310 | &nextp); | ||
311 | of_console_init(); | ||
312 | |||
313 | printk("PROM: Built device tree with %u bytes of memory.\n", | ||
314 | prom_early_allocated); | ||
315 | |||
316 | of_fill_in_cpu_data(); | ||
317 | } | ||