summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-zynq/platsmp.c
diff options
context:
space:
mode:
authorSoren Brinkmann <soren.brinkmann@xilinx.com>2014-09-02 23:19:13 +0200
committerMichal Simek <michal.simek@xilinx.com>2014-09-16 12:55:10 +0200
commitcaf86a73eab4132f870e883216850d9eee40b04b (patch)
treeeef994b37bfb32e88251724d6ee8f1cc9d49369e /arch/arm/mach-zynq/platsmp.c
parentARM: zynq: Synchronise zynq_cpu_die/kill (diff)
downloadlinux-caf86a73eab4132f870e883216850d9eee40b04b.tar.xz
linux-caf86a73eab4132f870e883216850d9eee40b04b.zip
ARM: zynq: Remove hotplug.c
The hotplug code contains only a single function, which is an SMP function. Move that to platsmp.c where all other SMP runctions reside. That allows removing hotplug.c and declaring the cpu_die function static. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'arch/arm/mach-zynq/platsmp.c')
-rw-r--r--arch/arm/mach-zynq/platsmp.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c
index 06415eeba7e6..f722b5a83a45 100644
--- a/arch/arm/mach-zynq/platsmp.c
+++ b/arch/arm/mach-zynq/platsmp.c
@@ -136,6 +136,24 @@ static int zynq_cpu_kill(unsigned cpu)
zynq_slcr_cpu_stop(cpu);
return 1;
}
+
+/*
+ * platform-specific code to shutdown a CPU
+ *
+ * Called with IRQs disabled
+ */
+static void zynq_platform_cpu_die(unsigned int cpu)
+{
+ zynq_slcr_cpu_state_write(cpu, true);
+
+ /*
+ * there is no power-control hardware on this platform, so all
+ * we can do is put the core into WFI; this is safe as the calling
+ * code will have already disabled interrupts
+ */
+ for (;;)
+ cpu_do_idle();
+}
#endif
struct smp_operations zynq_smp_ops __initdata = {