diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-13 20:34:23 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-13 20:34:23 -0500 |
commit | f90203e0cf0d5a8b027d511af318bb3db4758fe2 (patch) | |
tree | d2d9157331857b4220198e053e30ce3427c5140e /arch/powerpc/kernel/legacy_serial.c | |
parent | 33e563c1190c26b6bf61990c505cdcb5cdbba7e4 (diff) | |
parent | 719c91ccadd3ed26570dbb29d54166914832eee9 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc
* master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc: (61 commits)
[POWERPC] Use udbg_early_init() on ppc32
[POWERPC] Open Firmware serial port driver
[POWERPC] Move MPIC smp routines into mpic.c
[POWERPC] Cleanup pseries kexec code
[POWERPC] Cleanup pseries smp initialisation code
[POWERPC] Consolidate pseries platform header files into pseries.h
[POWERPC] 85xx: Drop use of SYNC macro in head_fsl_booke.S
[POWERPC] cell: pm_rtas_activat_signals routine cleanup
[POWERPC] cell: PPU Oprofile cleanup patch
[POWERPC] spufs: avoid accessing kernel memory through mmapped /mem node
[POWERPC] spu sched: static timeslicing for SCHED_RR contexts
[POWERPC] spu sched: use DECLARE_BITMAP
[POWERPC] spu sched: forced preemption at execution
[POWERPC] spu sched: update some comments
[POWERPC] spu sched: simplity spu_remove_from_active_list
[POWERPC] spufs: optimize spu_run
[POWERPC] spufs: runqueue simplification
[POWERPC] spufs: move prio to spu_context
[POWERPC] spufs: state_mutex cleanup
[POWERPC] spufs: simplify state_mutex
...
Diffstat (limited to 'arch/powerpc/kernel/legacy_serial.c')
-rw-r--r-- | arch/powerpc/kernel/legacy_serial.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c index 89f46f377922..325f490a10cc 100644 --- a/arch/powerpc/kernel/legacy_serial.c +++ b/arch/powerpc/kernel/legacy_serial.c | |||
@@ -124,6 +124,10 @@ static int __init add_legacy_soc_port(struct device_node *np, | |||
124 | if (get_property(np, "clock-frequency", NULL) == NULL) | 124 | if (get_property(np, "clock-frequency", NULL) == NULL) |
125 | return -1; | 125 | return -1; |
126 | 126 | ||
127 | /* if rtas uses this device, don't try to use it as well */ | ||
128 | if (get_property(np, "used-by-rtas", NULL) != NULL) | ||
129 | return -1; | ||
130 | |||
127 | /* Get the address */ | 131 | /* Get the address */ |
128 | addrp = of_get_address(soc_dev, 0, NULL, NULL); | 132 | addrp = of_get_address(soc_dev, 0, NULL, NULL); |
129 | if (addrp == NULL) | 133 | if (addrp == NULL) |
@@ -334,6 +338,17 @@ void __init find_legacy_serial_ports(void) | |||
334 | of_node_put(tsi); | 338 | of_node_put(tsi); |
335 | } | 339 | } |
336 | 340 | ||
341 | /* First fill our array with opb bus ports */ | ||
342 | for (np = NULL; (np = of_find_compatible_node(np, "serial", "ns16750")) != NULL;) { | ||
343 | struct device_node *opb = of_get_parent(np); | ||
344 | if (opb && !strcmp(opb->type, "opb")) { | ||
345 | index = add_legacy_soc_port(np, np); | ||
346 | if (index >= 0 && np == stdout) | ||
347 | legacy_serial_console = index; | ||
348 | } | ||
349 | of_node_put(opb); | ||
350 | } | ||
351 | |||
337 | #ifdef CONFIG_PCI | 352 | #ifdef CONFIG_PCI |
338 | /* Next, try to locate PCI ports */ | 353 | /* Next, try to locate PCI ports */ |
339 | for (np = NULL; (np = of_find_all_nodes(np));) { | 354 | for (np = NULL; (np = of_find_all_nodes(np));) { |