X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fasm-blackfin%2Fblackfin.h;h=25b934b7f829a2efa8a2594105323abcc37823b1;hb=c04d66bbbdbbc7b5d55c42795f29e494190f8fb3;hp=14e58de7397357bbc7aa6411426e06bd78775298;hpb=5f757f91e70a97eda8f0cc13bddc853209b2d173;p=pandora-kernel.git diff --git a/include/asm-blackfin/blackfin.h b/include/asm-blackfin/blackfin.h index 14e58de73973..25b934b7f829 100644 --- a/include/asm-blackfin/blackfin.h +++ b/include/asm-blackfin/blackfin.h @@ -6,7 +6,11 @@ #ifndef _BLACKFIN_H_ #define _BLACKFIN_H_ -#include +#define LO(con32) ((con32) & 0xFFFF) +#define lo(con32) ((con32) & 0xFFFF) +#define HI(con32) (((con32) >> 16) & 0xFFFF) +#define hi(con32) (((con32) >> 16) & 0xFFFF) + #include #include @@ -35,7 +39,9 @@ static inline void SSYNC (void) #elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244) static inline void SSYNC (void) { - __builtin_bfin_ssync(); + __asm__ __volatile__ ("nop; nop; nop;\n\t" + "ssync;\n\t" + ::); } #elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244) static inline void SSYNC (void) @@ -67,7 +73,9 @@ static inline void CSYNC (void) #elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244) static inline void CSYNC (void) { - __builtin_bfin_csync(); + __asm__ __volatile__ ("nop; nop; nop;\n\t" + "ssync;\n\t" + ::); } #elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244) static inline void CSYNC (void) @@ -76,6 +84,31 @@ static inline void CSYNC (void) } #endif +#else /* __ASSEMBLY__ */ + +/* SSYNC & CSYNC implementations for assembly files */ + +#define ssync(x) SSYNC(x) +#define csync(x) CSYNC(x) + +#if defined(ANOMALY_05000312) && defined(ANOMALY_05000244) +#define SSYNC(scratch) cli scratch; nop; nop; SSYNC; sti scratch; +#define CSYNC(scratch) cli scratch; nop; nop; CSYNC; sti scratch; + +#elif defined(ANOMALY_05000312) && !defined(ANOMALY_05000244) +#define SSYNC(scratch) cli scratch; nop; nop; SSYNC; sti scratch; +#define CSYNC(scratch) cli scratch; nop; nop; CSYNC; sti scratch; + +#elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244) +#define SSYNC(scratch) nop; nop; nop; SSYNC; +#define CSYNC(scratch) nop; nop; nop; CSYNC; + +#elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244) +#define SSYNC(scratch) SSYNC; +#define CSYNC(scratch) CSYNC; + +#endif /* ANOMALY_05000312 & ANOMALY_05000244 handling */ + #endif /* __ASSEMBLY__ */ #endif /* _BLACKFIN_H_ */