diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-25 11:19:14 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-25 11:19:14 -0400 |
commit | 51f00a471ce8f359627dd99aeac322947a0e491b (patch) | |
tree | de3f0c26359d7846fc5d6d0fdd147e225d979add /arch/powerpc/kernel/prom.c | |
parent | a7f505c6b15fb35c0de8136e370d2927ce29452c (diff) | |
parent | 97ff46cb69da22037346670ae515217c658ace02 (diff) |
Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6
* 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6:
mtd/m25p80: add support to parse the partitions by OF node
of/irq: of_irq.c needs to include linux/irq.h
of/mips: Cleanup some include directives/files.
of/mips: Add device tree support to MIPS
of/flattree: Eliminate need to provide early_init_dt_scan_chosen_arch
of/device: Rework to use common platform_device_alloc() for allocating devices
of/xsysace: Fix OF probing on little-endian systems
of: use __be32 types for big-endian device tree data
of/irq: remove references to NO_IRQ in drivers/of/platform.c
of/promtree: add package-to-path support to pdt
of/promtree: add of_pdt namespace to pdt code
of/promtree: no longer call prom_ functions directly; use an ops structure
of/promtree: make drivers/of/pdt.c no longer sparc-only
sparc: break out some PROM device-tree building code out into drivers/of
of/sparc: convert various prom_* functions to use phandle
sparc: stop exporting openprom.h header
powerpc, of_serial: Endianness issues setting up the serial ports
of: MTD: Fix OF probing on little-endian systems
of: GPIO: Fix OF probing on little-endian systems
Diffstat (limited to 'arch/powerpc/kernel/prom.c')
-rw-r--r-- | arch/powerpc/kernel/prom.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index c3c6a8857544..9e3132db718b 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -364,10 +364,15 @@ static int __init early_init_dt_scan_cpus(unsigned long node, | |||
364 | return 0; | 364 | return 0; |
365 | } | 365 | } |
366 | 366 | ||
367 | void __init early_init_dt_scan_chosen_arch(unsigned long node) | 367 | int __init early_init_dt_scan_chosen_ppc(unsigned long node, const char *uname, |
368 | int depth, void *data) | ||
368 | { | 369 | { |
369 | unsigned long *lprop; | 370 | unsigned long *lprop; |
370 | 371 | ||
372 | /* Use common scan routine to determine if this is the chosen node */ | ||
373 | if (early_init_dt_scan_chosen(node, uname, depth, data) == 0) | ||
374 | return 0; | ||
375 | |||
371 | #ifdef CONFIG_PPC64 | 376 | #ifdef CONFIG_PPC64 |
372 | /* check if iommu is forced on or off */ | 377 | /* check if iommu is forced on or off */ |
373 | if (of_get_flat_dt_prop(node, "linux,iommu-off", NULL) != NULL) | 378 | if (of_get_flat_dt_prop(node, "linux,iommu-off", NULL) != NULL) |
@@ -399,6 +404,9 @@ void __init early_init_dt_scan_chosen_arch(unsigned long node) | |||
399 | if (lprop) | 404 | if (lprop) |
400 | crashk_res.end = crashk_res.start + *lprop - 1; | 405 | crashk_res.end = crashk_res.start + *lprop - 1; |
401 | #endif | 406 | #endif |
407 | |||
408 | /* break now */ | ||
409 | return 1; | ||
402 | } | 410 | } |
403 | 411 | ||
404 | #ifdef CONFIG_PPC_PSERIES | 412 | #ifdef CONFIG_PPC_PSERIES |
@@ -683,7 +691,7 @@ void __init early_init_devtree(void *params) | |||
683 | * device-tree, including the platform type, initrd location and | 691 | * device-tree, including the platform type, initrd location and |
684 | * size, TCE reserve, and more ... | 692 | * size, TCE reserve, and more ... |
685 | */ | 693 | */ |
686 | of_scan_flat_dt(early_init_dt_scan_chosen, NULL); | 694 | of_scan_flat_dt(early_init_dt_scan_chosen_ppc, NULL); |
687 | 695 | ||
688 | /* Scan memory nodes and rebuild MEMBLOCKs */ | 696 | /* Scan memory nodes and rebuild MEMBLOCKs */ |
689 | memblock_init(); | 697 | memblock_init(); |