diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2007-11-19 07:23:51 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2008-01-29 05:14:57 -0500 |
commit | 87353d8ac39c52784da605ecbe965ecdfad609ad (patch) | |
tree | c95ce7cbe9b099c21cab71a195621801b04bc05a /arch/mips/qemu | |
parent | 19388fb092d89e179575bd0b44f51b57e175edf5 (diff) |
[MIPS] SMP: Call platform methods via ops structure.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/qemu')
-rw-r--r-- | arch/mips/qemu/q-smp.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/arch/mips/qemu/q-smp.c b/arch/mips/qemu/q-smp.c index 4b0178d0df0b..ead6c30eeb14 100644 --- a/arch/mips/qemu/q-smp.c +++ b/arch/mips/qemu/q-smp.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * License. See the file "COPYING" in the main directory of this archive | 3 | * License. See the file "COPYING" in the main directory of this archive |
4 | * for more details. | 4 | * for more details. |
5 | * | 5 | * |
6 | * Copyright (C) 2006 by Ralf Baechle (ralf@linux-mips.org) | 6 | * Copyright (C) 2006, 07 by Ralf Baechle (ralf@linux-mips.org) |
7 | * | 7 | * |
8 | * Symmetric Uniprocessor (TM) Support | 8 | * Symmetric Uniprocessor (TM) Support |
9 | */ | 9 | */ |
@@ -13,43 +13,55 @@ | |||
13 | /* | 13 | /* |
14 | * Send inter-processor interrupt | 14 | * Send inter-processor interrupt |
15 | */ | 15 | */ |
16 | void core_send_ipi(int cpu, unsigned int action) | 16 | void up_send_ipi_single(int cpu, unsigned int action) |
17 | { | 17 | { |
18 | panic(KERN_ERR "%s called", __FUNCTION__); | 18 | panic(KERN_ERR "%s called", __func__); |
19 | } | ||
20 | |||
21 | static inline void up_send_ipi_mask(cpumask_t mask, unsigned int action) | ||
22 | { | ||
23 | panic(KERN_ERR "%s called", __func__); | ||
19 | } | 24 | } |
20 | 25 | ||
21 | /* | 26 | /* |
22 | * After we've done initial boot, this function is called to allow the | 27 | * After we've done initial boot, this function is called to allow the |
23 | * board code to clean up state, if needed | 28 | * board code to clean up state, if needed |
24 | */ | 29 | */ |
25 | void __cpuinit prom_init_secondary(void) | 30 | void __cpuinit up_init_secondary(void) |
26 | { | 31 | { |
27 | } | 32 | } |
28 | 33 | ||
29 | void __cpuinit prom_smp_finish(void) | 34 | void __cpuinit up_smp_finish(void) |
30 | { | 35 | { |
31 | } | 36 | } |
32 | 37 | ||
33 | /* Hook for after all CPUs are online */ | 38 | /* Hook for after all CPUs are online */ |
34 | void prom_cpus_done(void) | 39 | void up_cpus_done(void) |
35 | { | ||
36 | } | ||
37 | |||
38 | void __init prom_prepare_cpus(unsigned int max_cpus) | ||
39 | { | 40 | { |
40 | cpus_clear(phys_cpu_present_map); | ||
41 | } | 41 | } |
42 | 42 | ||
43 | /* | 43 | /* |
44 | * Firmware CPU startup hook | 44 | * Firmware CPU startup hook |
45 | */ | 45 | */ |
46 | void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle) | 46 | void __cpuinit up_boot_secondary(int cpu, struct task_struct *idle) |
47 | { | 47 | { |
48 | } | 48 | } |
49 | 49 | ||
50 | void __init plat_smp_setup(void) | 50 | void __init up_smp_setup(void) |
51 | { | 51 | { |
52 | } | 52 | } |
53 | void __init plat_prepare_cpus(unsigned int max_cpus) | 53 | |
54 | void __init up_prepare_cpus(unsigned int max_cpus) | ||
54 | { | 55 | { |
55 | } | 56 | } |
57 | |||
58 | struct plat_smp_ops up_smp_ops = { | ||
59 | .send_ipi_single = up_send_ipi_single, | ||
60 | .send_ipi_mask = up_send_ipi_mask, | ||
61 | .init_secondary = up_init_secondary, | ||
62 | .smp_finish = up_smp_finish, | ||
63 | .cpus_done = up_cpus_done, | ||
64 | .boot_secondary = up_boot_secondary, | ||
65 | .smp_setup = up_smp_setup, | ||
66 | .prepare_cpus = up_prepare_cpus, | ||
67 | }; | ||