blob: 7de5aa56c18b6e1f647b4c4344d27cc2d19812f5 [file] [log] [blame]
Russell Kinge616c592009-09-27 20:55:43 +01001/*
2 * ARM specific SMP header, this contains our implementation
3 * details.
4 */
5#ifndef __ASMARM_SMP_PLAT_H
6#define __ASMARM_SMP_PLAT_H
7
8#include <asm/cputype.h>
9
10/* all SMP configurations have the extended CPUID registers */
11static inline int tlb_ops_need_broadcast(void)
12{
13 return ((read_cpuid_ext(CPUID_EXT_MMFR3) >> 12) & 0xf) < 2;
14}
15
Russell King2ef7f3d2009-11-05 13:29:36 +000016static inline int cache_ops_need_broadcast(void)
17{
18 return ((read_cpuid_ext(CPUID_EXT_MMFR3) >> 12) & 0xf) < 1;
19}
20
Russell Kingf00ec482010-09-04 10:47:48 +010021/*
22 * Return true if we are running on a SMP platform
23 */
24static inline bool is_smp(void)
25{
26#ifndef CONFIG_SMP
27 return false;
28#elif defined(CONFIG_SMP_ON_UP)
29 extern unsigned int smp_on_up;
30 return !!smp_on_up;
31#else
32 return true;
33#endif
34}
35
Russell Kinge616c592009-09-27 20:55:43 +010036#endif