Lines Matching refs:nareas
149 static void swiotlb_adjust_nareas(unsigned int nareas) in swiotlb_adjust_nareas() argument
151 if (!nareas) in swiotlb_adjust_nareas()
152 nareas = 1; in swiotlb_adjust_nareas()
153 else if (!is_power_of_2(nareas)) in swiotlb_adjust_nareas()
154 nareas = roundup_pow_of_two(nareas); in swiotlb_adjust_nareas()
156 default_nareas = nareas; in swiotlb_adjust_nareas()
158 pr_info("area num %d.\n", nareas); in swiotlb_adjust_nareas()
174 static unsigned int limit_nareas(unsigned int nareas, unsigned long nslots) in limit_nareas() argument
176 if (nslots < nareas * IO_TLB_SEGSIZE) in limit_nareas()
178 return nareas; in limit_nareas()
267 unsigned long nslabs, bool late_alloc, unsigned int nareas) in swiotlb_init_io_tlb_pool() argument
276 mem->nareas = nareas; in swiotlb_init_io_tlb_pool()
277 mem->area_nslabs = nslabs / mem->nareas; in swiotlb_init_io_tlb_pool()
279 for (i = 0; i < mem->nareas; i++) { in swiotlb_init_io_tlb_pool()
354 unsigned int nareas; in swiotlb_init_remap() local
379 nareas = limit_nareas(default_nareas, nslabs); in swiotlb_init_remap()
384 nareas = limit_nareas(nareas, nslabs); in swiotlb_init_remap()
402 nareas), SMP_CACHE_BYTES); in swiotlb_init_remap()
408 swiotlb_init_io_tlb_pool(mem, __pa(tlb), nslabs, false, nareas); in swiotlb_init_remap()
430 unsigned int nareas; in swiotlb_init_late() local
492 nareas = limit_nareas(default_nareas, nslabs); in swiotlb_init_late()
493 area_order = get_order(array_size(sizeof(*mem->areas), nareas)); in swiotlb_init_late()
507 nareas); in swiotlb_init_late()
541 mem->nareas)); in swiotlb_exit()
547 array_size(sizeof(*mem->areas), mem->nareas)); in swiotlb_exit()
673 unsigned int nareas, u64 phys_limit, gfp_t gfp) in swiotlb_alloc_pool() argument
683 nareas = limit_nareas(nareas, nslabs); in swiotlb_alloc_pool()
686 pool_size = sizeof(*pool) + array_size(sizeof(*pool->areas), nareas); in swiotlb_alloc_pool()
697 nareas = limit_nareas(nareas, nslabs); in swiotlb_alloc_pool()
707 swiotlb_init_io_tlb_pool(pool, page_to_phys(tlb), nslabs, true, nareas); in swiotlb_alloc_pool()
986 BUG_ON(area_index >= pool->nareas); in swiotlb_area_find_slots()
1079 int start = raw_smp_processor_id() & (pool->nareas - 1); in swiotlb_pool_find_slots()
1087 if (++i >= pool->nareas) in swiotlb_pool_find_slots()
1225 for (i = 0; i < pool->nareas; i++) in mem_pool_used()
1331 BUG_ON(aindex >= mem->nareas); in swiotlb_release_slots()
1634 unsigned int nareas = 1; in rmem_swiotlb_device_init() local
1660 pool->areas = kcalloc(nareas, sizeof(*pool->areas), in rmem_swiotlb_device_init()
1671 false, nareas); in rmem_swiotlb_device_init()