Lines Matching refs:tt
359 int ttm_pool_alloc(struct ttm_pool *pool, struct ttm_tt *tt, in ttm_pool_alloc() argument
362 unsigned long num_pages = tt->num_pages; in ttm_pool_alloc()
363 dma_addr_t *dma_addr = tt->dma_address; in ttm_pool_alloc()
364 struct page **caching = tt->pages; in ttm_pool_alloc()
365 struct page **pages = tt->pages; in ttm_pool_alloc()
371 WARN_ON(!num_pages || ttm_tt_is_populated(tt)); in ttm_pool_alloc()
374 if (tt->page_flags & TTM_TT_FLAG_ZERO_ALLOC) in ttm_pool_alloc()
391 pt = ttm_pool_select_type(pool, tt->caching, order); in ttm_pool_alloc()
412 tt->caching); in ttm_pool_alloc()
429 r = ttm_pool_apply_caching(caching, pages, tt->caching); in ttm_pool_alloc()
436 ttm_pool_free_page(pool, tt->caching, order, p); in ttm_pool_alloc()
439 num_pages = tt->num_pages - num_pages; in ttm_pool_alloc()
441 order = ttm_pool_page_order(pool, tt->pages[i]); in ttm_pool_alloc()
442 ttm_pool_free_page(pool, tt->caching, order, tt->pages[i]); in ttm_pool_alloc()
458 void ttm_pool_free(struct ttm_pool *pool, struct ttm_tt *tt) in ttm_pool_free() argument
462 for (i = 0; i < tt->num_pages; ) { in ttm_pool_free()
463 struct page *p = tt->pages[i]; in ttm_pool_free()
469 if (tt->dma_address) in ttm_pool_free()
470 ttm_pool_unmap(pool, tt->dma_address[i], num_pages); in ttm_pool_free()
472 pt = ttm_pool_select_type(pool, tt->caching, order); in ttm_pool_free()
474 ttm_pool_type_give(pt, tt->pages[i]); in ttm_pool_free()
476 ttm_pool_free_page(pool, tt->caching, order, in ttm_pool_free()
477 tt->pages[i]); in ttm_pool_free()