diff options
Diffstat (limited to 'arch/blackfin/mach-common/interrupt.S')
-rw-r--r-- | arch/blackfin/mach-common/interrupt.S | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S index b27e59d32401..4a2ec7a9675a 100644 --- a/arch/blackfin/mach-common/interrupt.S +++ b/arch/blackfin/mach-common/interrupt.S | |||
@@ -143,7 +143,7 @@ ENTRY(_evt_ivhw) | |||
143 | fp = 0; | 143 | fp = 0; |
144 | #endif | 144 | #endif |
145 | 145 | ||
146 | #if ANOMALY_05000283 | 146 | #if ANOMALY_05000283 || ANOMALY_05000315 |
147 | cc = r7 == r7; | 147 | cc = r7 == r7; |
148 | p5.h = HI(CHIPID); | 148 | p5.h = HI(CHIPID); |
149 | p5.l = LO(CHIPID); | 149 | p5.l = LO(CHIPID); |
@@ -179,7 +179,16 @@ ENTRY(_evt_ivhw) | |||
179 | call _trap_c; | 179 | call _trap_c; |
180 | SP += 12; | 180 | SP += 12; |
181 | 181 | ||
182 | #ifdef EBIU_ERRMST | ||
183 | /* make sure EBIU_ERRMST is clear */ | ||
184 | p0.l = LO(EBIU_ERRMST); | ||
185 | p0.h = HI(EBIU_ERRMST); | ||
186 | r0.l = (CORE_ERROR | CORE_MERROR); | ||
187 | w[p0] = r0.l; | ||
188 | #endif | ||
189 | |||
182 | call _ret_from_exception; | 190 | call _ret_from_exception; |
191 | |||
183 | .Lcommon_restore_all_sys: | 192 | .Lcommon_restore_all_sys: |
184 | RESTORE_ALL_SYS | 193 | RESTORE_ALL_SYS |
185 | rti; | 194 | rti; |