]> pilppa.org Git - linux-2.6-omap-h63xx.git/blob - include/asm-blackfin/blackfin.h
db3b615ffbab351fce0e377c3ce167b8177d9f07
[linux-2.6-omap-h63xx.git] / include / asm-blackfin / blackfin.h
1 /*
2  * Common header file for blackfin family of processors.
3  *
4  */
5
6 #ifndef _BLACKFIN_H_
7 #define _BLACKFIN_H_
8
9 #define LO(con32) ((con32) & 0xFFFF)
10 #define lo(con32) ((con32) & 0xFFFF)
11 #define HI(con32) (((con32) >> 16) & 0xFFFF)
12 #define hi(con32) (((con32) >> 16) & 0xFFFF)
13
14 #include <asm/mach/blackfin.h>
15 #include <asm/bfin-global.h>
16
17 #ifndef __ASSEMBLY__
18
19 /* SSYNC implementation for C file */
20 #if defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
21 static inline void SSYNC (void)
22 {
23         int _tmp;
24         __asm__ __volatile__ ("cli %0;\n\t"
25                         "nop;nop;\n\t"
26                         "ssync;\n\t"
27                         "sti %0;\n\t"
28                         :"=d"(_tmp):);
29 }
30 #elif defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
31 static inline void SSYNC (void)
32 {
33         int _tmp;
34         __asm__ __volatile__ ("cli %0;\n\t"
35                         "ssync;\n\t"
36                         "sti %0;\n\t"
37                         :"=d"(_tmp):);
38 }
39 #elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
40 static inline void SSYNC (void)
41 {
42         __builtin_bfin_ssync();
43 }
44 #elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
45 static inline void SSYNC (void)
46 {
47         __asm__ __volatile__ ("ssync;\n\t");
48 }
49 #endif
50
51 /* CSYNC implementation for C file */
52 #if defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
53 static inline void CSYNC (void)
54 {
55         int _tmp;
56         __asm__ __volatile__ ("cli %0;\n\t"
57                         "nop;nop;\n\t"
58                         "csync;\n\t"
59                         "sti %0;\n\t"
60                         :"=d"(_tmp):);
61 }
62 #elif defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
63 static inline void CSYNC (void)
64 {
65         int _tmp;
66         __asm__ __volatile__ ("cli %0;\n\t"
67                         "csync;\n\t"
68                         "sti %0;\n\t"
69                         :"=d"(_tmp):);
70 }
71 #elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
72 static inline void CSYNC (void)
73 {
74         __builtin_bfin_csync();
75 }
76 #elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
77 static inline void CSYNC (void)
78 {
79         __asm__ __volatile__ ("csync;\n\t");
80 }
81 #endif
82
83 #endif /* __ASSEMBLY__ */
84
85 #endif                          /* _BLACKFIN_H_ */