Lines Matching full:start
92 #define CACHE_LOOP_LIMITS(start, end, cache_line_length, cache_size) \ argument
95 if (start < UINT_MAX - cache_size) \
96 end = min(start + cache_size, end); \
97 start &= align; \
120 * start address is cache aligned
125 #define CACHE_RANGE_LOOP_2(start, end, line_length, op) \ argument
131 count = end - start; \
137 : : "r" (start), "r" (count), \
142 #define CACHE_RANGE_LOOP_1(start, end, line_length, op) \ argument
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()
185 static void __flush_icache_range_nomsr_irq(unsigned long start, 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()
213 static void __flush_icache_range_noirq(unsigned long start, 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()
377 static void __invalidate_dcache_range_wb(unsigned long start, 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()
397 static void __invalidate_dcache_range_nomsr_wt(unsigned long start, 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()
417 static void __invalidate_dcache_range_msr_irq_wt(unsigned long start, 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()
444 static void __invalidate_dcache_range_nomsr_irq(unsigned long start, 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()