diff options
Diffstat (limited to 'arch/blackfin/include/asm/cplb.h')
-rw-r--r-- | arch/blackfin/include/asm/cplb.h | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/arch/blackfin/include/asm/cplb.h b/arch/blackfin/include/asm/cplb.h index c5dacf8f8cf9..d18d16837a6d 100644 --- a/arch/blackfin/include/asm/cplb.h +++ b/arch/blackfin/include/asm/cplb.h | |||
@@ -125,4 +125,48 @@ | |||
125 | #define FAULT_USERSUPV (1 << 17) | 125 | #define FAULT_USERSUPV (1 << 17) |
126 | #define FAULT_CPLBBITS 0x0000ffff | 126 | #define FAULT_CPLBBITS 0x0000ffff |
127 | 127 | ||
128 | #endif /* _CPLB_H */ | 128 | #ifndef __ASSEMBLY__ |
129 | |||
130 | static inline void _disable_cplb(u32 mmr, u32 mask) | ||
131 | { | ||
132 | u32 ctrl = bfin_read32(mmr) & ~mask; | ||
133 | /* CSYNC to ensure load store ordering */ | ||
134 | __builtin_bfin_csync(); | ||
135 | bfin_write32(mmr, ctrl); | ||
136 | __builtin_bfin_ssync(); | ||
137 | } | ||
138 | static inline void disable_cplb(u32 mmr, u32 mask) | ||
139 | { | ||
140 | u32 ctrl = bfin_read32(mmr) & ~mask; | ||
141 | CSYNC(); | ||
142 | bfin_write32(mmr, ctrl); | ||
143 | SSYNC(); | ||
144 | } | ||
145 | #define _disable_dcplb() _disable_cplb(DMEM_CONTROL, ENDCPLB) | ||
146 | #define disable_dcplb() disable_cplb(DMEM_CONTROL, ENDCPLB) | ||
147 | #define _disable_icplb() _disable_cplb(IMEM_CONTROL, ENICPLB) | ||
148 | #define disable_icplb() disable_cplb(IMEM_CONTROL, ENICPLB) | ||
149 | |||
150 | static inline void _enable_cplb(u32 mmr, u32 mask) | ||
151 | { | ||
152 | u32 ctrl = bfin_read32(mmr) | mask; | ||
153 | /* CSYNC to ensure load store ordering */ | ||
154 | __builtin_bfin_csync(); | ||
155 | bfin_write32(mmr, ctrl); | ||
156 | __builtin_bfin_ssync(); | ||
157 | } | ||
158 | static inline void enable_cplb(u32 mmr, u32 mask) | ||
159 | { | ||
160 | u32 ctrl = bfin_read32(mmr) | mask; | ||
161 | CSYNC(); | ||
162 | bfin_write32(mmr, ctrl); | ||
163 | SSYNC(); | ||
164 | } | ||
165 | #define _enable_dcplb() _enable_cplb(DMEM_CONTROL, ENDCPLB) | ||
166 | #define enable_dcplb() enable_cplb(DMEM_CONTROL, ENDCPLB) | ||
167 | #define _enable_icplb() _enable_cplb(IMEM_CONTROL, ENICPLB) | ||
168 | #define enable_icplb() enable_cplb(IMEM_CONTROL, ENICPLB) | ||
169 | |||
170 | #endif /* __ASSEMBLY__ */ | ||
171 | |||
172 | #endif /* _CPLB_H */ | ||