Merge branch 'bkl-arch-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / arm / mach-ux500 / include / mach / smp.h
1 /*
2  * This file is based ARM realview platform.
3  * Copyright (C) ARM Limited.
4  *
5  * This file is licensed under  the terms of the GNU General Public
6  * License version 2. This program is licensed "as is" without any
7  * warranty of any kind, whether express or implied.
8  */
9 #ifndef ASMARM_ARCH_SMP_H
10 #define ASMARM_ARCH_SMP_H
11
12 #include <asm/hardware/gic.h>
13
14 /* This is required to wakeup the secondary core */
15 extern void u8500_secondary_startup(void);
16
17 #define hard_smp_processor_id()                         \
18         ({                                              \
19                 unsigned int cpunum;                    \
20                 __asm__("mrc p15, 0, %0, c0, c0, 5"     \
21                         : "=r" (cpunum));               \
22                 cpunum &= 0x0F;                         \
23         })
24
25 /*
26  * We use IRQ1 as the IPI
27  */
28 static inline void smp_cross_call(const struct cpumask *mask)
29 {
30         gic_raise_softirq(mask, 1);
31 }
32 #endif