From: Stephen Rothwell Date: Wed, 20 Feb 2013 05:17:55 +0000 (+1100) Subject: Merge remote-tracking branch 'cortex/for-next' X-Git-Tag: next-20130220~17 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=061e349f2b8a7b05c079196da20eb7567cacfa3c;p=karo-tx-linux.git Merge remote-tracking branch 'cortex/for-next' Conflicts: arch/arm/include/asm/cputype.h --- 061e349f2b8a7b05c079196da20eb7567cacfa3c diff --cc arch/arm/Kconfig index 8f7cbdd6f180,e04c7793f47e..0eb2c9b46053 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@@ -1656,12 -1655,10 +1656,13 @@@ config H default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE default 100 +config SCHED_HRTICK + def_bool HIGH_RES_TIMERS + config THUMB2_KERNEL - bool "Compile the kernel in Thumb-2 mode" + bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY depends on CPU_V7 && !CPU_V6 && !CPU_V6K + default y if CPU_THUMBONLY select AEABI select ARM_ASM_UNIFIED select ARM_UNWIND diff --cc arch/arm/include/asm/cputype.h index ad41ec2471e8,574269ed2232..30243c09141a --- a/arch/arm/include/asm/cputype.h +++ b/arch/arm/include/asm/cputype.h @@@ -59,29 -60,24 +60,42 @@@ extern unsigned int processor_id : "cc"); \ __val; \ }) - #else - #define read_cpuid(reg) (processor_id) - #define read_cpuid_ext(reg) 0 - #endif + + #else /* ifdef CONFIG_CPU_CP15 */ + + /* + * read_cpuid and read_cpuid_ext should only ever be called on machines that + * have cp15 so warn on other usages. + */ + #define read_cpuid(reg) \ + ({ \ + WARN_ON_ONCE(1); \ + 0; \ + }) + + #define read_cpuid_ext(reg) read_cpuid(reg) + + #endif /* ifdef CONFIG_CPU_CP15 / else */ +#define ARM_CPU_IMP_ARM 0x41 +#define ARM_CPU_IMP_INTEL 0x69 + +#define ARM_CPU_PART_ARM1136 0xB360 +#define ARM_CPU_PART_ARM1156 0xB560 +#define ARM_CPU_PART_ARM1176 0xB760 +#define ARM_CPU_PART_ARM11MPCORE 0xB020 +#define ARM_CPU_PART_CORTEX_A8 0xC080 +#define ARM_CPU_PART_CORTEX_A9 0xC090 +#define ARM_CPU_PART_CORTEX_A5 0xC050 +#define ARM_CPU_PART_CORTEX_A15 0xC0F0 +#define ARM_CPU_PART_CORTEX_A7 0xC070 + +#define ARM_CPU_XSCALE_ARCH_MASK 0xe000 +#define ARM_CPU_XSCALE_ARCH_V1 0x2000 +#define ARM_CPU_XSCALE_ARCH_V2 0x4000 +#define ARM_CPU_XSCALE_ARCH_V3 0x6000 + + #ifdef CONFIG_CPU_CP15 /* * The CPU ID never changes at run time, so we might as well tell the * compiler that it's constant. Use this function to read the CPU ID @@@ -92,21 -88,15 +106,30 @@@ static inline unsigned int __attribute_ return read_cpuid(CPUID_ID); } + #else /* ifdef CONFIG_CPU_CP15 */ + + static inline unsigned int __attribute_const__ read_cpuid_id(void) + { + return processor_id; + } + + #endif /* ifdef CONFIG_CPU_CP15 / else */ + +static inline unsigned int __attribute_const__ read_cpuid_implementor(void) +{ + return (read_cpuid_id() & 0xFF000000) >> 24; +} + +static inline unsigned int __attribute_const__ read_cpuid_part_number(void) +{ + return read_cpuid_id() & 0xFFF0; +} + +static inline unsigned int __attribute_const__ xscale_cpu_arch_version(void) +{ + return read_cpuid_part_number() & ARM_CPU_XSCALE_ARCH_MASK; +} + static inline unsigned int __attribute_const__ read_cpuid_cachetype(void) { return read_cpuid(CPUID_CACHETYPE);