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 <sundar.iyer@stericsson.com>
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