Skip to content
Snippets Groups Projects
Commit cf4fe376 authored by Oskar Viljasaar's avatar Oskar Viljasaar
Browse files

Import openwrt hack patch 300-MIPS-r4k_cache-use-more-efficient-cache-blast

parent 0e9bbf57
Branches
No related tags found
No related merge requests found
......@@ -683,16 +683,48 @@ static inline void prot##extra##blast_##pfx##cache##_range(unsigned long start,
unsigned long end) \
{ \
unsigned long lsize = cpu_##desc##_line_size(); \
unsigned long lsize_2 = lsize * 2; \
unsigned long lsize_3 = lsize * 3; \
unsigned long lsize_4 = lsize * 4; \
unsigned long lsize_5 = lsize * 5; \
unsigned long lsize_6 = lsize * 6; \
unsigned long lsize_7 = lsize * 7; \
unsigned long lsize_8 = lsize * 8; \
unsigned long addr = start & ~(lsize - 1); \
unsigned long aend = (end - 1) & ~(lsize - 1); \
unsigned long aend = (end + lsize - 1) & ~(lsize - 1); \
int lines = (aend - addr) / lsize; \
\
__##pfx##flush_prologue \
\
while (1) { \
while (lines >= 8) { \
prot##cache_op(hitop, addr); \
prot##cache_op(hitop, addr + lsize); \
prot##cache_op(hitop, addr + lsize_2); \
prot##cache_op(hitop, addr + lsize_3); \
prot##cache_op(hitop, addr + lsize_4); \
prot##cache_op(hitop, addr + lsize_5); \
prot##cache_op(hitop, addr + lsize_6); \
prot##cache_op(hitop, addr + lsize_7); \
addr += lsize_8; \
lines -= 8; \
} \
\
if (lines & 0x4) { \
prot##cache_op(hitop, addr); \
prot##cache_op(hitop, addr + lsize); \
prot##cache_op(hitop, addr + lsize_2); \
prot##cache_op(hitop, addr + lsize_3); \
addr += lsize_4; \
} \
\
if (lines & 0x2) { \
prot##cache_op(hitop, addr); \
prot##cache_op(hitop, addr + lsize); \
addr += lsize_2; \
} \
\
if (lines & 0x1) { \
prot##cache_op(hitop, addr); \
if (addr == aend) \
break; \
addr += lsize; \
} \
\
__##pfx##flush_epilogue \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment