projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ARM: EXYNOS: Fix core ID used by platsmp and hotplug code
[cascardo/linux.git]
/
arch
/
arm
/
mach-exynos
/
hotplug.c
diff --git
a/arch/arm/mach-exynos/hotplug.c
b/arch/arm/mach-exynos/hotplug.c
index
69fa483
..
920a4ba
100644
(file)
--- a/
arch/arm/mach-exynos/hotplug.c
+++ b/
arch/arm/mach-exynos/hotplug.c
@@
-40,21
+40,17
@@
static inline void cpu_leave_lowpower(void)
static inline void platform_do_lowpower(unsigned int cpu, int *spurious)
{
static inline void platform_do_lowpower(unsigned int cpu, int *spurious)
{
+ u32 mpidr = cpu_logical_map(cpu);
+ u32 core_id = MPIDR_AFFINITY_LEVEL(mpidr, 0);
+
for (;;) {
for (;;) {
- /* make cpu1 to be turned off at next WFI command */
- if (cpu == 1)
- exynos_cpu_power_down(cpu);
+ /* Turn the CPU off on next WFI instruction. */
+ exynos_cpu_power_down(core_id);
- /*
- * here's the WFI
- */
- asm(".word 0xe320f003\n"
- :
- :
- : "memory", "cc");
+ wfi();
- if (pen_release == c
pu_logical_map(cpu)
) {
+ if (pen_release == c
ore_id
) {
/*
* OK, proper wakeup, we're done
*/
/*
* OK, proper wakeup, we're done
*/