diff options
author | Tony Lindgren <tony@atomide.com> | 2010-07-05 09:53:10 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-07-09 09:41:35 -0400 |
commit | f159f4ed55bb0fa5470800641e03a13a7e0eae6e (patch) | |
tree | c2ed54b103c2a1c58fa4b50740fec462ccfeec74 /arch/arm/mm/proc-v6.S | |
parent | c1b2d9704c77ddaec46d5d681e1360ac40268743 (diff) |
ARM: 6207/1: Replace CONFIG_HAS_TLS_REG with HWCAP_TLS and check for it on V6
The TLS register is only available on ARM1136 r1p0 and later.
Set HWCAP_TLS flags if hardware TLS is available and test for
it if CONFIG_CPU_32v6K is not set for V6.
Note that we set the TLS instruction in __kuser_get_tls
dynamically as suggested by Jamie Lokier <jamie@shareable.org>.
Also the __switch_to code is optimized out in most cases as
suggested by Nicolas Pitre <nico@fluxnic.net>.
Reviewed-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/proc-v6.S')
-rw-r--r-- | arch/arm/mm/proc-v6.S | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index 7a5337ed7d68..2f5a3c23a0fe 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -239,7 +239,8 @@ __v6_proc_info: | |||
239 | b __v6_setup | 239 | b __v6_setup |
240 | .long cpu_arch_name | 240 | .long cpu_arch_name |
241 | .long cpu_elf_name | 241 | .long cpu_elf_name |
242 | .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP|HWCAP_JAVA | 242 | /* See also feat_v6_fixup() for HWCAP_TLS */ |
243 | .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP|HWCAP_JAVA|HWCAP_TLS | ||
243 | .long cpu_v6_name | 244 | .long cpu_v6_name |
244 | .long v6_processor_functions | 245 | .long v6_processor_functions |
245 | .long v6wbi_tlb_fns | 246 | .long v6wbi_tlb_fns |
@@ -262,7 +263,7 @@ __pj4_v6_proc_info: | |||
262 | b __v6_setup | 263 | b __v6_setup |
263 | .long cpu_arch_name | 264 | .long cpu_arch_name |
264 | .long cpu_elf_name | 265 | .long cpu_elf_name |
265 | .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP | 266 | .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP|HWCAP_TLS |
266 | .long cpu_pj4_name | 267 | .long cpu_pj4_name |
267 | .long v6_processor_functions | 268 | .long v6_processor_functions |
268 | .long v6wbi_tlb_fns | 269 | .long v6wbi_tlb_fns |