Lines Matching full:scale
129 * | ASID | TG | SCALE | NUM | TTL | BADDR |
134 * [BADDR, BADDR + (NUM + 1) * 2^(5*SCALE + 1) * PAGESIZE)
137 #define __TLBI_VADDR_RANGE(addr, asid, scale, num, ttl) \ argument
143 __ta |= (unsigned long)(scale) << 44; \
150 #define __TLBI_RANGE_PAGES(num, scale) \ argument
151 ((unsigned long)((num) + 1) << (5 * (scale) + 1))
159 #define __TLBI_RANGE_NUM(pages, scale) \ argument
160 ((((pages) >> (5 * (scale) + 1)) & TLBI_RANGE_MASK) - 1)
358 * by 'scale', so multiple range TLBI operations may be required.
359 * Start from scale = 0, flush the corresponding number of pages
360 * ((num+1)*2^(5*scale+1) starting from 'addr'), then increase it
364 * scale or num = 0 and scale + 1. The loop below favours the latter
371 int scale = 0; \
386 num = __TLBI_RANGE_NUM(pages, scale); \
388 addr = __TLBI_VADDR_RANGE(start, asid, scale, \
393 start += __TLBI_RANGE_PAGES(num, scale) << PAGE_SHIFT; \
394 pages -= __TLBI_RANGE_PAGES(num, scale); \
396 scale++; \