aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/kernel/Makefile1
-rw-r--r--arch/arm/kernel/iwmmxt.S13
2 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index 738ebe5a91e6..64886387c0bf 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -85,6 +85,7 @@ obj-$(CONFIG_CPU_PJ4B) += pj4-cp0.o
85obj-$(CONFIG_IWMMXT) += iwmmxt.o 85obj-$(CONFIG_IWMMXT) += iwmmxt.o
86obj-$(CONFIG_PERF_EVENTS) += perf_regs.o 86obj-$(CONFIG_PERF_EVENTS) += perf_regs.o
87obj-$(CONFIG_HW_PERF_EVENTS) += perf_event.o perf_event_cpu.o 87obj-$(CONFIG_HW_PERF_EVENTS) += perf_event.o perf_event_cpu.o
88CFLAGS_pj4-cp0.o := -marm
88AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt 89AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt
89obj-$(CONFIG_ARM_CPU_TOPOLOGY) += topology.o 90obj-$(CONFIG_ARM_CPU_TOPOLOGY) += topology.o
90 91
diff --git a/arch/arm/kernel/iwmmxt.S b/arch/arm/kernel/iwmmxt.S
index ad58e565fe98..49fadbda8c63 100644
--- a/arch/arm/kernel/iwmmxt.S
+++ b/arch/arm/kernel/iwmmxt.S
@@ -58,6 +58,7 @@
58#define MMX_SIZE (0x98) 58#define MMX_SIZE (0x98)
59 59
60 .text 60 .text
61 .arm
61 62
62/* 63/*
63 * Lazy switching of Concan coprocessor context 64 * Lazy switching of Concan coprocessor context
@@ -182,6 +183,8 @@ concan_load:
182 tmcr wCon, r2 183 tmcr wCon, r2
183 ret lr 184 ret lr
184 185
186ENDPROC(iwmmxt_task_enable)
187
185/* 188/*
186 * Back up Concan regs to save area and disable access to them 189 * Back up Concan regs to save area and disable access to them
187 * (mainly for gdb or sleep mode usage) 190 * (mainly for gdb or sleep mode usage)
@@ -232,6 +235,8 @@ ENTRY(iwmmxt_task_disable)
2321: msr cpsr_c, ip @ restore interrupt mode 2351: msr cpsr_c, ip @ restore interrupt mode
233 ldmfd sp!, {r4, pc} 236 ldmfd sp!, {r4, pc}
234 237
238ENDPROC(iwmmxt_task_disable)
239
235/* 240/*
236 * Copy Concan state to given memory address 241 * Copy Concan state to given memory address
237 * 242 *
@@ -268,6 +273,8 @@ ENTRY(iwmmxt_task_copy)
268 msr cpsr_c, ip @ restore interrupt mode 273 msr cpsr_c, ip @ restore interrupt mode
269 ret r3 274 ret r3
270 275
276ENDPROC(iwmmxt_task_copy)
277
271/* 278/*
272 * Restore Concan state from given memory address 279 * Restore Concan state from given memory address
273 * 280 *
@@ -304,6 +311,8 @@ ENTRY(iwmmxt_task_restore)
304 msr cpsr_c, ip @ restore interrupt mode 311 msr cpsr_c, ip @ restore interrupt mode
305 ret r3 312 ret r3
306 313
314ENDPROC(iwmmxt_task_restore)
315
307/* 316/*
308 * Concan handling on task switch 317 * Concan handling on task switch
309 * 318 *
@@ -335,6 +344,8 @@ ENTRY(iwmmxt_task_switch)
335 mrc p15, 0, r1, c2, c0, 0 344 mrc p15, 0, r1, c2, c0, 0
336 sub pc, lr, r1, lsr #32 @ cpwait and return 345 sub pc, lr, r1, lsr #32 @ cpwait and return
337 346
347ENDPROC(iwmmxt_task_switch)
348
338/* 349/*
339 * Remove Concan ownership of given task 350 * Remove Concan ownership of given task
340 * 351 *
@@ -353,6 +364,8 @@ ENTRY(iwmmxt_task_release)
353 msr cpsr_c, r2 @ restore interrupts 364 msr cpsr_c, r2 @ restore interrupts
354 ret lr 365 ret lr
355 366
367ENDPROC(iwmmxt_task_release)
368
356 .data 369 .data
357concan_owner: 370concan_owner:
358 .word 0 371 .word 0