Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
mach-ux500
hotplug.c
Go to the documentation of this file.
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 <
[email protected]
>
9
*
10
*/
11
#include <linux/kernel.h>
12
#include <linux/errno.h>
13
#include <
linux/smp.h
>
14
15
#include <asm/cacheflush.h>
16
#include <
asm/smp_plat.h
>
17
18
#include <
mach/setup.h
>
19
20
/*
21
* platform-specific code to shutdown a CPU
22
*
23
* Called with IRQs disabled
24
*/
25
void
__ref
ux500_cpu_die
(
unsigned
int
cpu
)
26
{
27
flush_cache_all
();
28
29
/* directly enter low power state, skipping secure registers */
30
for
(;;) {
31
__asm__
__volatile__(
"dsb\n\t"
"wfi\n\t"
32
: : :
"memory"
);
33
if
(
pen_release
==
cpu_logical_map
(cpu)) {
34
/*
35
* OK, proper wakeup, we're done
36
*/
37
break
;
38
}
39
}
40
}
Generated on Thu Jan 10 2013 12:58:56 for Linux Kernel by
1.8.2