diff options
author | Olof Johansson <olof@lixom.net> | 2012-09-22 03:06:21 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-09-22 03:16:04 -0400 |
commit | 25468fe89f88c4ceeef94526e94ae0db176f6999 (patch) | |
tree | d70a713525281276b5063c814413bb3141e6056c /arch/arm/mach-imx | |
parent | a283580c52d3aa24305985e945dfccfbcfc6f4f9 (diff) | |
parent | 28e8e29c616f947348cc66bea684d0035c76021a (diff) |
Merge branch 'multiplatform/smp_ops' into next/multiplatform
* multiplatform/smp_ops:
ARM: consolidate pen_release instead of having per platform definitions
ARM: smp: Make SMP operations mandatory
ARM: SoC: convert spear13xx to SMP operations
ARM: SoC: convert imx6q to SMP operations
ARM: SoC: convert highbank to SMP operations
ARM: SoC: convert shmobile SMP to SMP operations
ARM: SoC: convert ux500 to SMP operations
ARM: SoC: convert MSM to SMP operations
ARM: SoC: convert Exynos4 to SMP operations
ARM: SoC: convert Tegra to SMP operations
ARM: SoC: convert OMAP4 to SMP operations
ARM: SoC: convert VExpress/RealView to SMP operations
ARM: SoC: add per-platform SMP operations
Conflicts due to file moves or removals in:
arch/arm/mach-msm/board-msm8960.c
arch/arm/mach-msm/board-msm8x60.c
arch/arm/mach-tegra/board-harmony.c
arch/arm/mach-tegra/board-trimslice.c
Conflicts due to board file cleanup:
arch/arm/mach-tegra/board-paz00.c
Conflicts due to cpu hotplug addition:
arch/arm/mach-tegra/hotplug.c
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/hotplug.c | 16 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-imx6q.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-imx/platsmp.c | 18 |
3 files changed, 16 insertions, 19 deletions
diff --git a/arch/arm/mach-imx/hotplug.c b/arch/arm/mach-imx/hotplug.c index f8f7437c83b8..b07b778dc9a8 100644 --- a/arch/arm/mach-imx/hotplug.c +++ b/arch/arm/mach-imx/hotplug.c | |||
@@ -15,11 +15,6 @@ | |||
15 | #include <asm/cp15.h> | 15 | #include <asm/cp15.h> |
16 | #include <mach/common.h> | 16 | #include <mach/common.h> |
17 | 17 | ||
18 | int platform_cpu_kill(unsigned int cpu) | ||
19 | { | ||
20 | return 1; | ||
21 | } | ||
22 | |||
23 | static inline void cpu_enter_lowpower(void) | 18 | static inline void cpu_enter_lowpower(void) |
24 | { | 19 | { |
25 | unsigned int v; | 20 | unsigned int v; |
@@ -47,7 +42,7 @@ static inline void cpu_enter_lowpower(void) | |||
47 | * | 42 | * |
48 | * Called with IRQs disabled | 43 | * Called with IRQs disabled |
49 | */ | 44 | */ |
50 | void platform_cpu_die(unsigned int cpu) | 45 | void imx_cpu_die(unsigned int cpu) |
51 | { | 46 | { |
52 | cpu_enter_lowpower(); | 47 | cpu_enter_lowpower(); |
53 | imx_enable_cpu(cpu, false); | 48 | imx_enable_cpu(cpu, false); |
@@ -56,12 +51,3 @@ void platform_cpu_die(unsigned int cpu) | |||
56 | while (1) | 51 | while (1) |
57 | ; | 52 | ; |
58 | } | 53 | } |
59 | |||
60 | int platform_cpu_disable(unsigned int cpu) | ||
61 | { | ||
62 | /* | ||
63 | * we don't allow CPU 0 to be shutdown (it is still too special | ||
64 | * e.g. clock tick interrupts) | ||
65 | */ | ||
66 | return cpu == 0 ? -EPERM : 0; | ||
67 | } | ||
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index 692b4b143bb1..36979d3dfe34 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c | |||
@@ -215,6 +215,7 @@ static const char *imx6q_dt_compat[] __initdata = { | |||
215 | }; | 215 | }; |
216 | 216 | ||
217 | DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad (Device Tree)") | 217 | DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad (Device Tree)") |
218 | .smp = smp_ops(imx_smp_ops), | ||
218 | .map_io = imx6q_map_io, | 219 | .map_io = imx6q_map_io, |
219 | .init_irq = imx6q_init_irq, | 220 | .init_irq = imx6q_init_irq, |
220 | .handle_irq = imx6q_handle_irq, | 221 | .handle_irq = imx6q_handle_irq, |
diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c index ab98c6fec9eb..2ac43e1a2dfd 100644 --- a/arch/arm/mach-imx/platsmp.c +++ b/arch/arm/mach-imx/platsmp.c | |||
@@ -41,7 +41,7 @@ void __init imx_scu_map_io(void) | |||
41 | scu_base = IMX_IO_ADDRESS(base); | 41 | scu_base = IMX_IO_ADDRESS(base); |
42 | } | 42 | } |
43 | 43 | ||
44 | void __cpuinit platform_secondary_init(unsigned int cpu) | 44 | static void __cpuinit imx_secondary_init(unsigned int cpu) |
45 | { | 45 | { |
46 | /* | 46 | /* |
47 | * if any interrupts are already enabled for the primary | 47 | * if any interrupts are already enabled for the primary |
@@ -51,7 +51,7 @@ void __cpuinit platform_secondary_init(unsigned int cpu) | |||
51 | gic_secondary_init(0); | 51 | gic_secondary_init(0); |
52 | } | 52 | } |
53 | 53 | ||
54 | int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | 54 | static int __cpuinit imx_boot_secondary(unsigned int cpu, struct task_struct *idle) |
55 | { | 55 | { |
56 | imx_set_cpu_jump(cpu, v7_secondary_startup); | 56 | imx_set_cpu_jump(cpu, v7_secondary_startup); |
57 | imx_enable_cpu(cpu, true); | 57 | imx_enable_cpu(cpu, true); |
@@ -62,7 +62,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
62 | * Initialise the CPU possible map early - this describes the CPUs | 62 | * Initialise the CPU possible map early - this describes the CPUs |
63 | * which may be present or become present in the system. | 63 | * which may be present or become present in the system. |
64 | */ | 64 | */ |
65 | void __init smp_init_cpus(void) | 65 | static void __init imx_smp_init_cpus(void) |
66 | { | 66 | { |
67 | int i, ncores; | 67 | int i, ncores; |
68 | 68 | ||
@@ -79,7 +79,17 @@ void imx_smp_prepare(void) | |||
79 | scu_enable(scu_base); | 79 | scu_enable(scu_base); |
80 | } | 80 | } |
81 | 81 | ||
82 | void __init platform_smp_prepare_cpus(unsigned int max_cpus) | 82 | static void __init imx_smp_prepare_cpus(unsigned int max_cpus) |
83 | { | 83 | { |
84 | imx_smp_prepare(); | 84 | imx_smp_prepare(); |
85 | } | 85 | } |
86 | |||
87 | struct smp_operations imx_smp_ops __initdata = { | ||
88 | .smp_init_cpus = imx_smp_init_cpus, | ||
89 | .smp_prepare_cpus = imx_smp_prepare_cpus, | ||
90 | .smp_secondary_init = imx_secondary_init, | ||
91 | .smp_boot_secondary = imx_boot_secondary, | ||
92 | #ifdef CONFIG_HOTPLUG_CPU | ||
93 | .cpu_die = imx_cpu_die, | ||
94 | #endif | ||
95 | }; | ||