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>
This commit is contained in:
Robin Getz 2007-08-03 17:56:29 +08:00 committed by Bryan Wu
parent 35c724f310
commit fb51d56680
1 changed files with 7 additions and 25 deletions

View File

@ -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
#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
#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;