aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/qemu
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2007-11-19 07:23:51 -0500
committerRalf Baechle <ralf@linux-mips.org>2008-01-29 05:14:57 -0500
commit87353d8ac39c52784da605ecbe965ecdfad609ad (patch)
treec95ce7cbe9b099c21cab71a195621801b04bc05a /arch/mips/qemu
parent19388fb092d89e179575bd0b44f51b57e175edf5 (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.c40
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 */
16void core_send_ipi(int cpu, unsigned int action) 16void 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
21static 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 */
25void __cpuinit prom_init_secondary(void) 30void __cpuinit up_init_secondary(void)
26{ 31{
27} 32}
28 33
29void __cpuinit prom_smp_finish(void) 34void __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 */
34void prom_cpus_done(void) 39void up_cpus_done(void)
35{
36}
37
38void __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 */
46void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle) 46void __cpuinit up_boot_secondary(int cpu, struct task_struct *idle)
47{ 47{
48} 48}
49 49
50void __init plat_smp_setup(void) 50void __init up_smp_setup(void)
51{ 51{
52} 52}
53void __init plat_prepare_cpus(unsigned int max_cpus) 53
54void __init up_prepare_cpus(unsigned int max_cpus)
54{ 55{
55} 56}
57
58struct 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};