summaryrefslogtreecommitdiffstats
path: root/include/asm-blackfin
diff options
context:
space:
mode:
authorRobin Getz <robin.getz@analog.com>2007-08-03 17:56:29 +0800
committerBryan Wu <bryan.wu@analog.com>2007-08-03 17:56:29 +0800
commitfb51d566803413d2682ca718aef1c6f946fdab05 (patch)
tree1d1fbec0a1e469a1ef411cf3f924db1cf69ebe3d /include/asm-blackfin
parent35c724f310c4b73dbfa6503a46bf86a4c55f8193 (diff)
downloadlinux-fb51d566803413d2682ca718aef1c6f946fdab05.tar.bz2
Blackfin arch: Fix Anomaly hanlding, as pointed out by Mike
Signed-off-by: Robin Getz <robin.getz@analog.com> Cc: Mike Frysinger <michael.frysinger@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'include/asm-blackfin')
-rw-r--r--include/asm-blackfin/blackfin.h32
1 files changed, 7 insertions, 25 deletions
diff --git a/include/asm-blackfin/blackfin.h b/include/asm-blackfin/blackfin.h
index 3c6e597dced4..984b74f0a2ec 100644
--- a/include/asm-blackfin/blackfin.h
+++ b/include/asm-blackfin/blackfin.h
@@ -19,7 +19,7 @@
static inline void SSYNC(void)
{
int _tmp;
- if (ANOMALY_05000312 && ANOMALY_05000244)
+ if (ANOMALY_05000312)
__asm__ __volatile__(
"cli %0;"
"nop;"
@@ -28,14 +28,7 @@ static inline void SSYNC(void)
"sti %0;"
: "=d" (_tmp)
);
- else if (ANOMALY_05000312 && !ANOMALY_05000244)
- __asm__ __volatile__(
- "cli %0;"
- "ssync;"
- "sti %0;"
- : "=d" (_tmp)
- );
- else if (!ANOMALY_05000312 && ANOMALY_05000244)
+ else if (ANOMALY_05000244)
__asm__ __volatile__(
"nop;"
"nop;"
@@ -50,7 +43,7 @@ static inline void SSYNC(void)
static inline void CSYNC(void)
{
int _tmp;
- if (ANOMALY_05000312 && ANOMALY_05000244)
+ if (ANOMALY_05000312)
__asm__ __volatile__(
"cli %0;"
"nop;"
@@ -59,14 +52,7 @@ static inline void CSYNC(void)
"sti %0;"
: "=d" (_tmp)
);
- else if (ANOMALY_05000312 && !ANOMALY_05000244)
- __asm__ __volatile__(
- "cli %0;"
- "csync;"
- "sti %0;"
- : "=d" (_tmp)
- );
- else if (!ANOMALY_05000312 && ANOMALY_05000244)
+ else if (ANOMALY_05000244)
__asm__ __volatile__(
"nop;"
"nop;"
@@ -84,19 +70,15 @@ static inline void CSYNC(void)
#define ssync(x) SSYNC(x)
#define csync(x) CSYNC(x)
-#if ANOMALY_05000312 && ANOMALY_05000244
-#define SSYNC(scratch) cli scratch; nop; nop; SSYNC; sti scratch;
-#define CSYNC(scratch) cli scratch; nop; nop; CSYNC; sti scratch;
-
-#elif ANOMALY_05000312 && !ANOMALY_05000244
+#if ANOMALY_05000312
#define SSYNC(scratch) cli scratch; nop; nop; SSYNC; sti scratch;
#define CSYNC(scratch) cli scratch; nop; nop; CSYNC; sti scratch;
-#elif !ANOMALY_05000312 && ANOMALY_05000244
+#elif ANOMALY_05000244
#define SSYNC(scratch) nop; nop; nop; SSYNC;
#define CSYNC(scratch) nop; nop; nop; CSYNC;
-#elif !ANOMALY_05000312 && !ANOMALY_05000244
+#else
#define SSYNC(scratch) SSYNC;
#define CSYNC(scratch) CSYNC;