Commit bc94081c authored by Catalin Marinas's avatar Catalin Marinas Committed by Russell King

ARM: 8035/1: Disable preemption in crunch_task_enable()

This patch is in preparation for calling the crunch_task_enable()
function with interrupts enabled.
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Cc: Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ryan Mallon <rmallon@gmail.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 431a84b1
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <asm/ptrace.h> #include <asm/ptrace.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/assembler.h>
#include <mach/ep93xx-regs.h> #include <mach/ep93xx-regs.h>
/* /*
...@@ -65,11 +66,13 @@ ...@@ -65,11 +66,13 @@
* called from prefetch exception handler with interrupts disabled * called from prefetch exception handler with interrupts disabled
*/ */
ENTRY(crunch_task_enable) ENTRY(crunch_task_enable)
inc_preempt_count r10, r3
ldr r8, =(EP93XX_APB_VIRT_BASE + 0x00130000) @ syscon addr ldr r8, =(EP93XX_APB_VIRT_BASE + 0x00130000) @ syscon addr
ldr r1, [r8, #0x80] ldr r1, [r8, #0x80]
tst r1, #0x00800000 @ access to crunch enabled? tst r1, #0x00800000 @ access to crunch enabled?
movne pc, lr @ if so no business here bne 2f @ if so no business here
mov r3, #0xaa @ unlock syscon swlock mov r3, #0xaa @ unlock syscon swlock
str r3, [r8, #0xc0] str r3, [r8, #0xc0]
orr r1, r1, #0x00800000 @ enable access to crunch orr r1, r1, #0x00800000 @ enable access to crunch
...@@ -142,7 +145,7 @@ crunch_save: ...@@ -142,7 +145,7 @@ crunch_save:
teq r0, #0 @ anything to load? teq r0, #0 @ anything to load?
cfldr64eq mvdx0, [r1, #CRUNCH_MVDX0] @ mvdx0 was clobbered cfldr64eq mvdx0, [r1, #CRUNCH_MVDX0] @ mvdx0 was clobbered
moveq pc, lr beq 1f
crunch_load: crunch_load:
cfldr64 mvdx0, [r0, #CRUNCH_DSPSC] @ load status word cfldr64 mvdx0, [r0, #CRUNCH_DSPSC] @ load status word
...@@ -190,6 +193,11 @@ crunch_load: ...@@ -190,6 +193,11 @@ crunch_load:
cfldr64 mvdx14, [r0, #CRUNCH_MVDX14] cfldr64 mvdx14, [r0, #CRUNCH_MVDX14]
cfldr64 mvdx15, [r0, #CRUNCH_MVDX15] cfldr64 mvdx15, [r0, #CRUNCH_MVDX15]
1:
#ifdef CONFIG_PREEMPT_COUNT
get_thread_info r10
#endif
2: dec_preempt_count r10, r3
mov pc, lr mov pc, lr
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment