Lines Matching refs:ttm

1029 ttm_pool_unpopulate_helper(struct ttm_tt *ttm, unsigned mem_count_update)  in ttm_pool_unpopulate_helper()  argument
1031 struct ttm_mem_global *mem_glob = ttm->bdev->glob->mem_glob; in ttm_pool_unpopulate_helper()
1038 if (!ttm->pages[i]) in ttm_pool_unpopulate_helper()
1041 ttm_mem_global_free_page(mem_glob, ttm->pages[i], PAGE_SIZE); in ttm_pool_unpopulate_helper()
1045 ttm_put_pages(ttm->pages, ttm->num_pages, ttm->page_flags, in ttm_pool_unpopulate_helper()
1046 ttm->caching_state); in ttm_pool_unpopulate_helper()
1047 ttm->state = tt_unpopulated; in ttm_pool_unpopulate_helper()
1050 int ttm_pool_populate(struct ttm_tt *ttm, struct ttm_operation_ctx *ctx) in ttm_pool_populate() argument
1052 struct ttm_mem_global *mem_glob = ttm->bdev->glob->mem_glob; in ttm_pool_populate()
1056 if (ttm->state != tt_unpopulated) in ttm_pool_populate()
1059 if (ttm_check_under_lowerlimit(mem_glob, ttm->num_pages, ctx)) in ttm_pool_populate()
1062 ret = ttm_get_pages(ttm->pages, ttm->num_pages, ttm->page_flags, in ttm_pool_populate()
1063 ttm->caching_state); in ttm_pool_populate()
1065 ttm_pool_unpopulate_helper(ttm, 0); in ttm_pool_populate()
1069 for (i = 0; i < ttm->num_pages; ++i) { in ttm_pool_populate()
1070 ret = ttm_mem_global_alloc_page(mem_glob, ttm->pages[i], in ttm_pool_populate()
1073 ttm_pool_unpopulate_helper(ttm, i); in ttm_pool_populate()
1078 if (unlikely(ttm->page_flags & TTM_PAGE_FLAG_SWAPPED)) { in ttm_pool_populate()
1079 ret = ttm_tt_swapin(ttm); in ttm_pool_populate()
1081 ttm_pool_unpopulate(ttm); in ttm_pool_populate()
1086 ttm->state = tt_unbound; in ttm_pool_populate()
1091 void ttm_pool_unpopulate(struct ttm_tt *ttm) in ttm_pool_unpopulate() argument
1093 ttm_pool_unpopulate_helper(ttm, ttm->num_pages); in ttm_pool_unpopulate()
1103 r = ttm_pool_populate(&tt->ttm, ctx); in ttm_populate_and_map_pages()
1107 for (i = 0; i < tt->ttm.num_pages; ++i) { in ttm_populate_and_map_pages()
1108 struct page *p = tt->ttm.pages[i]; in ttm_populate_and_map_pages()
1111 for (j = i + 1; j < tt->ttm.num_pages; ++j) { in ttm_populate_and_map_pages()
1112 if (++p != tt->ttm.pages[j]) in ttm_populate_and_map_pages()
1118 tt->dma_address[i] = dma_map_page(dev, tt->ttm.pages[i], in ttm_populate_and_map_pages()
1127 ttm_pool_unpopulate(&tt->ttm); in ttm_populate_and_map_pages()
1144 for (i = 0; i < tt->ttm.num_pages;) { in ttm_unmap_and_unpopulate_pages()
1145 struct page *p = tt->ttm.pages[i]; in ttm_unmap_and_unpopulate_pages()
1148 if (!tt->dma_address[i] || !tt->ttm.pages[i]) { in ttm_unmap_and_unpopulate_pages()
1153 for (j = i + 1; j < tt->ttm.num_pages; ++j) { in ttm_unmap_and_unpopulate_pages()
1154 if (++p != tt->ttm.pages[j]) in ttm_unmap_and_unpopulate_pages()
1165 ttm_pool_unpopulate(&tt->ttm); in ttm_unmap_and_unpopulate_pages()