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 */ | ||
