diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-05 13:05:29 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-05 13:05:29 -0400 |
commit | c489d98c8c81a898cfed6bec193cca2006f956aa (patch) | |
tree | 4cc9b571c9bb2380e6b11828cc843f3ceeb5dcf4 /arch/arm/mm/proc-arm946.S | |
parent | f67d251a87ccb288a3a164c5226c6ee9ce8ea53d (diff) | |
parent | f15bdfe4fb264ac30d9c176f898cbd52cfd1ffa9 (diff) |
Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull ARM updates from Russell King:
"Included in this update:
- perf updates from Will Deacon:
The main changes are callchain stability fixes from Jean Pihet and
event mapping and PMU name rework from Mark Rutland
The latter is preparatory work for enabling some code re-use with
arm64 in the future.
- updates for nommu from Uwe Kleine-König:
Two different fixes for the same problem making some ARM nommu
configurations not boot since 3.6-rc1. The problem is that
user_addr_max returned the biggest available RAM address which
makes some copy_from_user variants fail to read from XIP memory.
- deprecate legacy OMAP DMA API, in preparation for it's removal.
The popular drivers have been converted over, leaving a very small
number of rarely used drivers, which hopefully can be converted
during the next cycle with a bit more visibility (and hopefully
people popping out of the woodwork to help test)
- more tweaks for BE systems, particularly with the kernel image
format. In connection with this, I've cleaned up the way we
generate the linker script for the decompressor.
- removal of hard-coded assumptions of the kernel stack size, making
everywhere depend on the value of THREAD_SIZE_ORDER.
- MCPM updates from Nicolas Pitre.
- Make it easier for proper CPU part number checks (which should
always include the vendor field).
- Assembly code optimisation - use the "bx" instruction when
returning from a function on ARMv6+ rather than "mov pc, reg".
- Save the last kernel misaligned fault location and report it via
the procfs alignment file.
- Clean up the way we create the initial stack frame, which is a
repeated pattern in several different locations.
- Support for 8-byte get_user(), needed for some DRM implementations.
- mcs locking from Will Deacon.
- Save and restore a few more Cortex-A9 registers (for errata
workarounds)
- Fix various aspects of the SWP emulation, and the ELF hwcap for the
SWP instruction.
- Update LPAE logic for pte_write and pmd_write to make it more
correct.
- Support for Broadcom Brahma15 CPU cores.
- ARM assembly crypto updates from Ard Biesheuvel"
* 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (53 commits)
ARM: add comments to the early page table remap code
ARM: 8122/1: smp_scu: enable SCU standby support
ARM: 8121/1: smp_scu: use macro for SCU enable bit
ARM: 8120/1: crypto: sha512: add ARM NEON implementation
ARM: 8119/1: crypto: sha1: add ARM NEON implementation
ARM: 8118/1: crypto: sha1/make use of common SHA-1 structures
ARM: 8113/1: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>
ARM: 8111/1: Enable erratum 798181 for Broadcom Brahma-B15
ARM: 8110/1: do CPU-specific init for Broadcom Brahma15 cores
ARM: 8109/1: mm: Modify pte_write and pmd_write logic for LPAE
ARM: 8108/1: mm: Introduce {pte,pmd}_isset and {pte,pmd}_isclear
ARM: hwcap: disable HWCAP_SWP if the CPU advertises it has exclusives
ARM: SWP emulation: only initialise on ARMv7 CPUs
ARM: SWP emulation: always enable when SMP is enabled
ARM: 8103/1: save/restore Cortex-A9 CP15 registers on suspend/resume
ARM: 8098/1: mcs lock: implement wfe-based polling for MCS locking
ARM: 8091/2: add get_user() support for 8 byte types
ARM: 8097/1: unistd.h: relocate comments back to place
ARM: 8096/1: Describe required sort order for textofs-y (TEXT_OFFSET)
ARM: 8090/1: add revision info for PL310 errata 588369 and 727915
...
Diffstat (limited to 'arch/arm/mm/proc-arm946.S')
-rw-r--r-- | arch/arm/mm/proc-arm946.S | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/arch/arm/mm/proc-arm946.S b/arch/arm/mm/proc-arm946.S index 0289cd905e73..b3dd9b2d0b8e 100644 --- a/arch/arm/mm/proc-arm946.S +++ b/arch/arm/mm/proc-arm946.S | |||
@@ -38,7 +38,7 @@ | |||
38 | */ | 38 | */ |
39 | ENTRY(cpu_arm946_proc_init) | 39 | ENTRY(cpu_arm946_proc_init) |
40 | ENTRY(cpu_arm946_switch_mm) | 40 | ENTRY(cpu_arm946_switch_mm) |
41 | mov pc, lr | 41 | ret lr |
42 | 42 | ||
43 | /* | 43 | /* |
44 | * cpu_arm946_proc_fin() | 44 | * cpu_arm946_proc_fin() |
@@ -48,7 +48,7 @@ ENTRY(cpu_arm946_proc_fin) | |||
48 | bic r0, r0, #0x00001000 @ i-cache | 48 | bic r0, r0, #0x00001000 @ i-cache |
49 | bic r0, r0, #0x00000004 @ d-cache | 49 | bic r0, r0, #0x00000004 @ d-cache |
50 | mcr p15, 0, r0, c1, c0, 0 @ disable caches | 50 | mcr p15, 0, r0, c1, c0, 0 @ disable caches |
51 | mov pc, lr | 51 | ret lr |
52 | 52 | ||
53 | /* | 53 | /* |
54 | * cpu_arm946_reset(loc) | 54 | * cpu_arm946_reset(loc) |
@@ -65,7 +65,7 @@ ENTRY(cpu_arm946_reset) | |||
65 | bic ip, ip, #0x00000005 @ .............c.p | 65 | bic ip, ip, #0x00000005 @ .............c.p |
66 | bic ip, ip, #0x00001000 @ i-cache | 66 | bic ip, ip, #0x00001000 @ i-cache |
67 | mcr p15, 0, ip, c1, c0, 0 @ ctrl register | 67 | mcr p15, 0, ip, c1, c0, 0 @ ctrl register |
68 | mov pc, r0 | 68 | ret r0 |
69 | ENDPROC(cpu_arm946_reset) | 69 | ENDPROC(cpu_arm946_reset) |
70 | .popsection | 70 | .popsection |
71 | 71 | ||
@@ -75,7 +75,7 @@ ENDPROC(cpu_arm946_reset) | |||
75 | .align 5 | 75 | .align 5 |
76 | ENTRY(cpu_arm946_do_idle) | 76 | ENTRY(cpu_arm946_do_idle) |
77 | mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt | 77 | mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt |
78 | mov pc, lr | 78 | ret lr |
79 | 79 | ||
80 | /* | 80 | /* |
81 | * flush_icache_all() | 81 | * flush_icache_all() |
@@ -85,7 +85,7 @@ ENTRY(cpu_arm946_do_idle) | |||
85 | ENTRY(arm946_flush_icache_all) | 85 | ENTRY(arm946_flush_icache_all) |
86 | mov r0, #0 | 86 | mov r0, #0 |
87 | mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache | 87 | mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache |
88 | mov pc, lr | 88 | ret lr |
89 | ENDPROC(arm946_flush_icache_all) | 89 | ENDPROC(arm946_flush_icache_all) |
90 | 90 | ||
91 | /* | 91 | /* |
@@ -117,7 +117,7 @@ __flush_whole_cache: | |||
117 | tst r2, #VM_EXEC | 117 | tst r2, #VM_EXEC |
118 | mcrne p15, 0, ip, c7, c5, 0 @ flush I cache | 118 | mcrne p15, 0, ip, c7, c5, 0 @ flush I cache |
119 | mcrne p15, 0, ip, c7, c10, 4 @ drain WB | 119 | mcrne p15, 0, ip, c7, c10, 4 @ drain WB |
120 | mov pc, lr | 120 | ret lr |
121 | 121 | ||
122 | /* | 122 | /* |
123 | * flush_user_cache_range(start, end, flags) | 123 | * flush_user_cache_range(start, end, flags) |
@@ -156,7 +156,7 @@ ENTRY(arm946_flush_user_cache_range) | |||
156 | blo 1b | 156 | blo 1b |
157 | tst r2, #VM_EXEC | 157 | tst r2, #VM_EXEC |
158 | mcrne p15, 0, ip, c7, c10, 4 @ drain WB | 158 | mcrne p15, 0, ip, c7, c10, 4 @ drain WB |
159 | mov pc, lr | 159 | ret lr |
160 | 160 | ||
161 | /* | 161 | /* |
162 | * coherent_kern_range(start, end) | 162 | * coherent_kern_range(start, end) |
@@ -191,7 +191,7 @@ ENTRY(arm946_coherent_user_range) | |||
191 | blo 1b | 191 | blo 1b |
192 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 192 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
193 | mov r0, #0 | 193 | mov r0, #0 |
194 | mov pc, lr | 194 | ret lr |
195 | 195 | ||
196 | /* | 196 | /* |
197 | * flush_kern_dcache_area(void *addr, size_t size) | 197 | * flush_kern_dcache_area(void *addr, size_t size) |
@@ -212,7 +212,7 @@ ENTRY(arm946_flush_kern_dcache_area) | |||
212 | mov r0, #0 | 212 | mov r0, #0 |
213 | mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache | 213 | mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache |
214 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 214 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
215 | mov pc, lr | 215 | ret lr |
216 | 216 | ||
217 | /* | 217 | /* |
218 | * dma_inv_range(start, end) | 218 | * dma_inv_range(start, end) |
@@ -239,7 +239,7 @@ arm946_dma_inv_range: | |||
239 | cmp r0, r1 | 239 | cmp r0, r1 |
240 | blo 1b | 240 | blo 1b |
241 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 241 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
242 | mov pc, lr | 242 | ret lr |
243 | 243 | ||
244 | /* | 244 | /* |
245 | * dma_clean_range(start, end) | 245 | * dma_clean_range(start, end) |
@@ -260,7 +260,7 @@ arm946_dma_clean_range: | |||
260 | blo 1b | 260 | blo 1b |
261 | #endif | 261 | #endif |
262 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 262 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
263 | mov pc, lr | 263 | ret lr |
264 | 264 | ||
265 | /* | 265 | /* |
266 | * dma_flush_range(start, end) | 266 | * dma_flush_range(start, end) |
@@ -284,7 +284,7 @@ ENTRY(arm946_dma_flush_range) | |||
284 | cmp r0, r1 | 284 | cmp r0, r1 |
285 | blo 1b | 285 | blo 1b |
286 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 286 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
287 | mov pc, lr | 287 | ret lr |
288 | 288 | ||
289 | /* | 289 | /* |
290 | * dma_map_area(start, size, dir) | 290 | * dma_map_area(start, size, dir) |
@@ -307,7 +307,7 @@ ENDPROC(arm946_dma_map_area) | |||
307 | * - dir - DMA direction | 307 | * - dir - DMA direction |
308 | */ | 308 | */ |
309 | ENTRY(arm946_dma_unmap_area) | 309 | ENTRY(arm946_dma_unmap_area) |
310 | mov pc, lr | 310 | ret lr |
311 | ENDPROC(arm946_dma_unmap_area) | 311 | ENDPROC(arm946_dma_unmap_area) |
312 | 312 | ||
313 | .globl arm946_flush_kern_cache_louis | 313 | .globl arm946_flush_kern_cache_louis |
@@ -324,7 +324,7 @@ ENTRY(cpu_arm946_dcache_clean_area) | |||
324 | bhi 1b | 324 | bhi 1b |
325 | #endif | 325 | #endif |
326 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | 326 | mcr p15, 0, r0, c7, c10, 4 @ drain WB |
327 | mov pc, lr | 327 | ret lr |
328 | 328 | ||
329 | .type __arm946_setup, #function | 329 | .type __arm946_setup, #function |
330 | __arm946_setup: | 330 | __arm946_setup: |
@@ -392,7 +392,7 @@ __arm946_setup: | |||
392 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN | 392 | #ifdef CONFIG_CPU_CACHE_ROUND_ROBIN |
393 | orr r0, r0, #0x00004000 @ .1.. .... .... .... | 393 | orr r0, r0, #0x00004000 @ .1.. .... .... .... |
394 | #endif | 394 | #endif |
395 | mov pc, lr | 395 | ret lr |
396 | 396 | ||
397 | .size __arm946_setup, . - __arm946_setup | 397 | .size __arm946_setup, . - __arm946_setup |
398 | 398 | ||