Commit | Line | Data |
---|---|---|
9d704c04 SI |
1 | /* |
2 | * Copyright (C) STMicroelectronics 2009 | |
3 | * Copyright (C) ST-Ericsson SA 2010 | |
4 | * | |
5 | * License Terms: GNU General Public License v2 | |
6 | * Based on ARM realview platform | |
7 | * | |
8 | * Author: Sundar Iyer <sundar.iyer@stericsson.com> | |
9 | * | |
10 | */ | |
11 | #include <linux/kernel.h> | |
12 | #include <linux/errno.h> | |
13 | #include <linux/smp.h> | |
9d704c04 | 14 | |
eb50439b | 15 | #include <asm/smp_plat.h> |
9d704c04 | 16 | |
e657bcf6 | 17 | #include "setup.h" |
5ac21a94 | 18 | |
5ac21a94 MZ |
19 | /* |
20 | * platform-specific code to shutdown a CPU | |
21 | * | |
22 | * Called with IRQs disabled | |
23 | */ | |
b96fc2f3 | 24 | void ux500_cpu_die(unsigned int cpu) |
9d704c04 | 25 | { |
5ac21a94 | 26 | /* directly enter low power state, skipping secure registers */ |
9d704c04 SI |
27 | for (;;) { |
28 | __asm__ __volatile__("dsb\n\t" "wfi\n\t" | |
29 | : : : "memory"); | |
28763487 | 30 | if (pen_release == cpu_logical_map(cpu)) { |
9d704c04 SI |
31 | /* |
32 | * OK, proper wakeup, we're done | |
33 | */ | |
34 | break; | |
35 | } | |
36 | } | |
37 | } |