Lines Matching full:scale
128 * | ASID | TG | SCALE | NUM | TTL | BADDR |
133 * [BADDR, BADDR + (NUM + 1) * 2^(5*SCALE + 1) * PAGESIZE)
136 #define __TLBI_VADDR_RANGE(addr, asid, scale, num, ttl) \ argument
142 __ta |= (unsigned long)(scale) << 44; \
149 #define __TLBI_RANGE_PAGES(num, scale) \ argument
150 ((unsigned long)((num) + 1) << (5 * (scale) + 1))
158 #define __TLBI_RANGE_NUM(pages, scale) \ argument
159 ((((pages) >> (5 * (scale) + 1)) & TLBI_RANGE_MASK) - 1)
287 int scale = 0; in __flush_tlb_range() local
319 * by 'scale', so multiple range TLBI operations may be required. in __flush_tlb_range()
320 * Start from scale = 0, flush the corresponding number of pages in __flush_tlb_range()
321 * ((num+1)*2^(5*scale+1) starting from 'addr'), then increase it in __flush_tlb_range()
325 * scale or num = 0 and scale + 1. The loop below favours the latter in __flush_tlb_range()
344 num = __TLBI_RANGE_NUM(pages, scale); in __flush_tlb_range()
346 addr = __TLBI_VADDR_RANGE(start, asid, scale, in __flush_tlb_range()
355 start += __TLBI_RANGE_PAGES(num, scale) << PAGE_SHIFT; in __flush_tlb_range()
356 pages -= __TLBI_RANGE_PAGES(num, scale); in __flush_tlb_range()
358 scale++; in __flush_tlb_range()