|
@@ -10,35 +10,7 @@
|
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
|
* published by the Free Software Foundation.
|
|
|
*/
|
|
|
-#include <linux/kernel.h>
|
|
|
-#include <linux/errno.h>
|
|
|
-#include <linux/smp.h>
|
|
|
-
|
|
|
-#include <asm/cacheflush.h>
|
|
|
-#include <asm/cp15.h>
|
|
|
-#include "common.h"
|
|
|
-
|
|
|
-static inline void zynq_cpu_enter_lowpower(void)
|
|
|
-{
|
|
|
- unsigned int v;
|
|
|
-
|
|
|
- flush_cache_all();
|
|
|
- asm volatile(
|
|
|
- " mcr p15, 0, %1, c7, c5, 0\n"
|
|
|
- " dsb\n"
|
|
|
- /*
|
|
|
- * Turn off coherency
|
|
|
- */
|
|
|
- " mrc p15, 0, %0, c1, c0, 1\n"
|
|
|
- " bic %0, %0, #0x40\n"
|
|
|
- " mcr p15, 0, %0, c1, c0, 1\n"
|
|
|
- " mrc p15, 0, %0, c1, c0, 0\n"
|
|
|
- " bic %0, %0, %2\n"
|
|
|
- " mcr p15, 0, %0, c1, c0, 0\n"
|
|
|
- : "=&r" (v)
|
|
|
- : "r" (0), "Ir" (CR_C)
|
|
|
- : "cc");
|
|
|
-}
|
|
|
+#include <asm/proc-fns.h>
|
|
|
|
|
|
/*
|
|
|
* platform-specific code to shutdown a CPU
|
|
@@ -47,8 +19,6 @@ static inline void zynq_cpu_enter_lowpower(void)
|
|
|
*/
|
|
|
void zynq_platform_cpu_die(unsigned int cpu)
|
|
|
{
|
|
|
- zynq_cpu_enter_lowpower();
|
|
|
-
|
|
|
/*
|
|
|
* 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
|