Lines Matching full:end

89  * End address can be unaligned which is OK for C implementation.
92 #define CACHE_LOOP_LIMITS(start, end, cache_line_length, cache_size) \ argument
96 end = min(start + cache_size, end); \
121 * end address is not aligned, if end is aligned then I have to subtract
125 #define CACHE_RANGE_LOOP_2(start, end, line_length, op) \ argument
130 end = ((end & align) == end) ? end - line_length : end & align; \
131 count = end - start; \
142 #define CACHE_RANGE_LOOP_1(start, end, line_length, op) \ argument
146 end = ((end & align) == end) ? end - line_length : end & align; \
147 WARN_ON(end < start); \
153 : : "r" (temp), "r" (start), "r" (end), \
159 static void __flush_icache_range_msr_irq(unsigned long start, unsigned long end) in __flush_icache_range_msr_irq() argument
165 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, in __flush_icache_range_msr_irq()
166 (unsigned int)start, (unsigned int) end); in __flush_icache_range_msr_irq()
168 CACHE_LOOP_LIMITS(start, end, in __flush_icache_range_msr_irq()
175 CACHE_RANGE_LOOP_1(start, end, cpuinfo.icache_line_length, wic); in __flush_icache_range_msr_irq()
177 for (i = start; i < end; i += cpuinfo.icache_line_length) in __flush_icache_range_msr_irq()
186 unsigned long end) in __flush_icache_range_nomsr_irq() argument
192 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, in __flush_icache_range_nomsr_irq()
193 (unsigned int)start, (unsigned int) end); in __flush_icache_range_nomsr_irq()
195 CACHE_LOOP_LIMITS(start, end, in __flush_icache_range_nomsr_irq()
202 CACHE_RANGE_LOOP_1(start, end, cpuinfo.icache_line_length, wic); in __flush_icache_range_nomsr_irq()
204 for (i = start; i < end; i += cpuinfo.icache_line_length) in __flush_icache_range_nomsr_irq()
214 unsigned long end) in __flush_icache_range_noirq() argument
219 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, in __flush_icache_range_noirq()
220 (unsigned int)start, (unsigned int) end); in __flush_icache_range_noirq()
222 CACHE_LOOP_LIMITS(start, end, in __flush_icache_range_noirq()
225 CACHE_RANGE_LOOP_1(start, end, cpuinfo.icache_line_length, wic); in __flush_icache_range_noirq()
227 for (i = start; i < end; i += cpuinfo.icache_line_length) in __flush_icache_range_noirq()
378 unsigned long end) in __invalidate_dcache_range_wb() argument
383 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, in __invalidate_dcache_range_wb()
384 (unsigned int)start, (unsigned int) end); in __invalidate_dcache_range_wb()
386 CACHE_LOOP_LIMITS(start, end, in __invalidate_dcache_range_wb()
389 CACHE_RANGE_LOOP_2(start, end, cpuinfo.dcache_line_length, wdc.clear); in __invalidate_dcache_range_wb()
391 for (i = start; i < end; i += cpuinfo.dcache_line_length) in __invalidate_dcache_range_wb()
398 unsigned long end) in __invalidate_dcache_range_nomsr_wt() argument
403 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, in __invalidate_dcache_range_nomsr_wt()
404 (unsigned int)start, (unsigned int) end); in __invalidate_dcache_range_nomsr_wt()
405 CACHE_LOOP_LIMITS(start, end, in __invalidate_dcache_range_nomsr_wt()
409 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc); in __invalidate_dcache_range_nomsr_wt()
411 for (i = start; i < end; i += cpuinfo.dcache_line_length) in __invalidate_dcache_range_nomsr_wt()
418 unsigned long end) in __invalidate_dcache_range_msr_irq_wt() argument
424 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, in __invalidate_dcache_range_msr_irq_wt()
425 (unsigned int)start, (unsigned int) end); in __invalidate_dcache_range_msr_irq_wt()
426 CACHE_LOOP_LIMITS(start, end, in __invalidate_dcache_range_msr_irq_wt()
433 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc); in __invalidate_dcache_range_msr_irq_wt()
435 for (i = start; i < end; i += cpuinfo.dcache_line_length) in __invalidate_dcache_range_msr_irq_wt()
445 unsigned long end) in __invalidate_dcache_range_nomsr_irq() argument
451 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, in __invalidate_dcache_range_nomsr_irq()
452 (unsigned int)start, (unsigned int) end); in __invalidate_dcache_range_nomsr_irq()
454 CACHE_LOOP_LIMITS(start, end, in __invalidate_dcache_range_nomsr_irq()
461 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc); in __invalidate_dcache_range_nomsr_irq()
463 for (i = start; i < end; i += cpuinfo.dcache_line_length) in __invalidate_dcache_range_nomsr_irq()
489 static void __flush_dcache_range_wb(unsigned long start, unsigned long end) in __flush_dcache_range_wb() argument
494 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, in __flush_dcache_range_wb()
495 (unsigned int)start, (unsigned int) end); in __flush_dcache_range_wb()
497 CACHE_LOOP_LIMITS(start, end, in __flush_dcache_range_wb()
500 CACHE_RANGE_LOOP_2(start, end, cpuinfo.dcache_line_length, wdc.flush); in __flush_dcache_range_wb()
502 for (i = start; i < end; i += cpuinfo.dcache_line_length) in __flush_dcache_range_wb()