Lines Matching refs:order
113 unsigned int order; member
136 unsigned int order) in ttm_pool_alloc_page() argument
147 if (order) in ttm_pool_alloc_page()
152 p = alloc_pages_node(pool->nid, gfp_flags, order); in ttm_pool_alloc_page()
154 p->private = order; in ttm_pool_alloc_page()
162 if (order) in ttm_pool_alloc_page()
165 vaddr = dma_alloc_attrs(pool->dev, (1ULL << order) * PAGE_SIZE, in ttm_pool_alloc_page()
178 dma->vaddr = (unsigned long)vaddr | order; in ttm_pool_alloc_page()
189 unsigned int order, struct page *p) in ttm_pool_free_page() argument
200 set_pages_wb(p, 1 << order); in ttm_pool_free_page()
204 __free_pages(p, order); in ttm_pool_free_page()
208 if (order) in ttm_pool_free_page()
213 dma_free_attrs(pool->dev, (1UL << order) * PAGE_SIZE, vaddr, dma->addr, in ttm_pool_free_page()
241 static int ttm_pool_map(struct ttm_pool *pool, unsigned int order, in ttm_pool_map() argument
251 size_t size = (1ULL << order) * PAGE_SIZE; in ttm_pool_map()
278 unsigned int i, num_pages = 1 << pt->order; in ttm_pool_type_give()
290 atomic_long_add(1 << pt->order, &allocated_pages); in ttm_pool_type_give()
301 atomic_long_sub(1 << pt->order, &allocated_pages); in ttm_pool_type_take()
311 enum ttm_caching caching, unsigned int order) in ttm_pool_type_init() argument
315 pt->order = order; in ttm_pool_type_init()
334 ttm_pool_free_page(pt->pool, pt->caching, pt->order, p); in ttm_pool_type_fini()
340 unsigned int order) in ttm_pool_select_type() argument
343 return &pool->caching[caching].orders[order]; in ttm_pool_select_type()
349 return &pool->caching[caching].orders[order]; in ttm_pool_select_type()
352 return &global_dma32_write_combined[order]; in ttm_pool_select_type()
354 return &global_write_combined[order]; in ttm_pool_select_type()
357 return &pool->caching[caching].orders[order]; in ttm_pool_select_type()
360 return &global_dma32_uncached[order]; in ttm_pool_select_type()
362 return &global_uncached[order]; in ttm_pool_select_type()
386 ttm_pool_free_page(pt->pool, pt->caching, pt->order, p); in ttm_pool_shrink()
387 num_pages = 1 << pt->order; in ttm_pool_shrink()
415 unsigned int order = ttm_pool_page_order(pool, p); in ttm_pool_split_for_swap() local
418 if (!order) in ttm_pool_split_for_swap()
421 split_page(p, order); in ttm_pool_split_for_swap()
422 nr = 1UL << order; in ttm_pool_split_for_swap()
452 return restore && restore->restored_pages < (1 << restore->order); in ttm_pool_restore_valid()
460 unsigned int order; in ttm_pool_unmap_and_free() local
464 order = ttm_pool_page_order(pool, page); in ttm_pool_unmap_and_free()
465 nr = (1UL << order); in ttm_pool_unmap_and_free()
469 pt = ttm_pool_select_type(pool, caching, order); in ttm_pool_unmap_and_free()
471 order = page->private; in ttm_pool_unmap_and_free()
472 nr = (1UL << order); in ttm_pool_unmap_and_free()
478 ttm_pool_free_page(pool, caching, order, page); in ttm_pool_unmap_and_free()
515 pgoff_t i, nr = 1UL << restore->order; in ttm_pool_restore_commit()
582 ttm_pool_page_allocated_restore(struct ttm_pool *pool, unsigned int order, in ttm_pool_page_allocated_restore() argument
590 restore->order = order; in ttm_pool_page_allocated_restore()
605 static int ttm_pool_page_allocated(struct ttm_pool *pool, unsigned int order, in ttm_pool_page_allocated() argument
623 r = ttm_pool_map(pool, order, p, &first_dma); in ttm_pool_page_allocated()
629 ttm_pool_page_allocated_restore(pool, order, p, page_caching, in ttm_pool_page_allocated()
632 ttm_pool_allocated_page_commit(p, first_dma, alloc, 1UL << order); in ttm_pool_page_allocated()
708 unsigned int order; in __ttm_pool_alloc() local
729 for (order = ttm_pool_alloc_find_order(MAX_PAGE_ORDER, alloc); in __ttm_pool_alloc()
731 order = ttm_pool_alloc_find_order(order, alloc)) { in __ttm_pool_alloc()
736 pt = ttm_pool_select_type(pool, page_caching, order); in __ttm_pool_alloc()
748 p = ttm_pool_alloc_page(pool, gfp_flags, order); in __ttm_pool_alloc()
752 if (order) { in __ttm_pool_alloc()
753 --order; in __ttm_pool_alloc()
761 r = ttm_pool_page_allocated(pool, order, p, page_caching, alloc, in __ttm_pool_alloc()
783 ttm_pool_free_page(pool, page_caching, order, p); in __ttm_pool_alloc()
918 restore->restored_pages = 1UL << restore->order; in ttm_pool_drop_backed_up()
991 unsigned int order; in ttm_pool_backup() local
999 order = ttm_pool_page_order(pool, page); in ttm_pool_backup()
1000 num_pages = 1UL << order; in ttm_pool_backup()
1007 __free_pages(page, order); in ttm_pool_backup()