diff options
Diffstat (limited to 'arch/arm/vfp')
-rw-r--r-- | arch/arm/vfp/entry.S | 2 | ||||
-rw-r--r-- | arch/arm/vfp/vfphw.S | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/arch/arm/vfp/entry.S b/arch/arm/vfp/entry.S index 6f17187ab32a..7b595547c1c8 100644 --- a/arch/arm/vfp/entry.S +++ b/arch/arm/vfp/entry.S | |||
@@ -18,10 +18,12 @@ | |||
18 | #include <linux/linkage.h> | 18 | #include <linux/linkage.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <asm/asm-offsets.h> | 20 | #include <asm/asm-offsets.h> |
21 | #include <asm/assembler.h> | ||
21 | #include <asm/vfpmacros.h> | 22 | #include <asm/vfpmacros.h> |
22 | 23 | ||
23 | .globl do_vfp | 24 | .globl do_vfp |
24 | do_vfp: | 25 | do_vfp: |
26 | enable_irq | ||
25 | ldr r4, .LCvfp | 27 | ldr r4, .LCvfp |
26 | add r10, r10, #TI_VFPSTATE @ r10 = workspace | 28 | add r10, r10, #TI_VFPSTATE @ r10 = workspace |
27 | ldr pc, [r4] @ call VFP entry point | 29 | ldr pc, [r4] @ call VFP entry point |
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S index de4ca1223c58..b7ed57e00cd4 100644 --- a/arch/arm/vfp/vfphw.S +++ b/arch/arm/vfp/vfphw.S | |||
@@ -102,7 +102,6 @@ vfp_support_entry: | |||
102 | VFPFMRX r8, FPINST2, NE @ FPINST2 if needed - avoids reading | 102 | VFPFMRX r8, FPINST2, NE @ FPINST2 if needed - avoids reading |
103 | @ nonexistant reg on rev0 | 103 | @ nonexistant reg on rev0 |
104 | VFPFSTMIA r4 @ save the working registers | 104 | VFPFSTMIA r4 @ save the working registers |
105 | add r4, r4, #8*16+4 | ||
106 | stmia r4, {r1, r5, r6, r8} @ save FPEXC, FPSCR, FPINST, FPINST2 | 105 | stmia r4, {r1, r5, r6, r8} @ save FPEXC, FPSCR, FPINST, FPINST2 |
107 | @ and point r4 at the word at the | 106 | @ and point r4 at the word at the |
108 | @ start of the register dump | 107 | @ start of the register dump |
@@ -111,10 +110,9 @@ no_old_VFP_process: | |||
111 | DBGSTR1 "load state %p", r10 | 110 | DBGSTR1 "load state %p", r10 |
112 | str r10, [r3] @ update the last_VFP_context pointer | 111 | str r10, [r3] @ update the last_VFP_context pointer |
113 | @ Load the saved state back into the VFP | 112 | @ Load the saved state back into the VFP |
114 | add r4, r10, #8*16+4 | ||
115 | ldmia r4, {r1, r5, r6, r8} @ load FPEXC, FPSCR, FPINST, FPINST2 | ||
116 | VFPFLDMIA r10 @ reload the working registers while | 113 | VFPFLDMIA r10 @ reload the working registers while |
117 | @ FPEXC is in a safe state | 114 | @ FPEXC is in a safe state |
115 | ldmia r10, {r1, r5, r6, r8} @ load FPEXC, FPSCR, FPINST, FPINST2 | ||
118 | tst r1, #FPEXC_FPV2 @ is there an FPINST2 to write? | 116 | tst r1, #FPEXC_FPV2 @ is there an FPINST2 to write? |
119 | VFPFMXR FPINST2, r8, NE @ FPINST2 if needed - avoids writing | 117 | VFPFMXR FPINST2, r8, NE @ FPINST2 if needed - avoids writing |
120 | @ nonexistant reg on rev0 | 118 | @ nonexistant reg on rev0 |