diff options
Diffstat (limited to 'arch/blackfin/mach-common/interrupt.S')
-rw-r--r-- | arch/blackfin/mach-common/interrupt.S | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S index 4a2ec7a9675a..2604b532897c 100644 --- a/arch/blackfin/mach-common/interrupt.S +++ b/arch/blackfin/mach-common/interrupt.S | |||
@@ -152,6 +152,12 @@ ENTRY(_evt_ivhw) | |||
152 | 1: | 152 | 1: |
153 | #endif | 153 | #endif |
154 | 154 | ||
155 | # We are going to dump something out, so make sure we print IPEND properly | ||
156 | p2.l = lo(IPEND); | ||
157 | p2.h = hi(IPEND); | ||
158 | r0 = [p2]; | ||
159 | [sp + PT_IPEND] = r0; | ||
160 | |||
155 | #ifdef CONFIG_HARDWARE_PM | 161 | #ifdef CONFIG_HARDWARE_PM |
156 | r7 = [sp + PT_SEQSTAT]; | 162 | r7 = [sp + PT_SEQSTAT]; |
157 | r7 = r7 >>> 0xe; | 163 | r7 = r7 >>> 0xe; |
@@ -161,11 +167,6 @@ ENTRY(_evt_ivhw) | |||
161 | cc = r7 == r5; | 167 | cc = r7 == r5; |
162 | if cc jump .Lcall_do_ovf; /* deal with performance counter overflow */ | 168 | if cc jump .Lcall_do_ovf; /* deal with performance counter overflow */ |
163 | #endif | 169 | #endif |
164 | # We are going to dump something out, so make sure we print IPEND properly | ||
165 | p2.l = lo(IPEND); | ||
166 | p2.h = hi(IPEND); | ||
167 | r0 = [p2]; | ||
168 | [sp + PT_IPEND] = r0; | ||
169 | 170 | ||
170 | /* set the EXCAUSE to HWERR for trap_c */ | 171 | /* set the EXCAUSE to HWERR for trap_c */ |
171 | r0 = [sp + PT_SEQSTAT]; | 172 | r0 = [sp + PT_SEQSTAT]; |
@@ -196,6 +197,7 @@ ENTRY(_evt_ivhw) | |||
196 | #ifdef CONFIG_HARDWARE_PM | 197 | #ifdef CONFIG_HARDWARE_PM |
197 | .Lcall_do_ovf: | 198 | .Lcall_do_ovf: |
198 | 199 | ||
200 | R0 = SP; | ||
199 | SP += -12; | 201 | SP += -12; |
200 | call _pm_overflow; | 202 | call _pm_overflow; |
201 | SP += 12; | 203 | SP += 12; |