Lines Matching full:pages
14 struct sg_table *pages, in __i915_gem_object_set_pages() argument
26 /* Make the pages coherent with the GPU (flushing any swapin). */ in __i915_gem_object_set_pages()
30 drm_clflush_sg(pages); in __i915_gem_object_set_pages()
34 obj->mm.get_page.sg_pos = pages->sgl; in __i915_gem_object_set_pages()
37 obj->mm.pages = pages; in __i915_gem_object_set_pages()
54 * 64K or 4K pages, although in practice this will depend on a number of in __i915_gem_object_set_pages()
101 /* Ensure that the associated pages are gathered from the backing storage
104 * i915_gem_object_unpin_pages() - once the pages are no longer referenced
105 * either as a result of memory pressure (reaping pages under the shrinker)
140 /* Try to discard unwanted pages */
170 struct sg_table *pages; in __i915_gem_object_unset_pages() local
172 pages = fetch_and_zero(&obj->mm.pages); in __i915_gem_object_unset_pages()
173 if (IS_ERR_OR_NULL(pages)) in __i915_gem_object_unset_pages()
174 return pages; in __i915_gem_object_unset_pages()
189 return pages; in __i915_gem_object_unset_pages()
194 struct sg_table *pages; in __i915_gem_object_put_pages() local
214 pages = __i915_gem_object_unset_pages(obj); in __i915_gem_object_put_pages()
218 * NULL pages. In the future, when we have more asynchronous in __i915_gem_object_put_pages()
222 if (!pages && !i915_gem_object_needs_async_cancel(obj)) in __i915_gem_object_put_pages()
223 pages = ERR_PTR(-EINVAL); in __i915_gem_object_put_pages()
225 if (!IS_ERR(pages)) in __i915_gem_object_put_pages()
226 obj->ops->put_pages(obj, pages); in __i915_gem_object_put_pages()
240 struct page *stack[32], **pages = stack, *page; in i915_gem_object_map_page() local
252 * vmap) to provide virtual mappings of the high pages. in i915_gem_object_map_page()
267 if (n_pages == 1 && !PageHighMem(sg_page(obj->mm.pages->sgl))) in i915_gem_object_map_page()
268 return page_address(sg_page(obj->mm.pages->sgl)); in i915_gem_object_map_page()
278 pages = kvmalloc_array(n_pages, sizeof(*pages), GFP_KERNEL); in i915_gem_object_map_page()
279 if (!pages) in i915_gem_object_map_page()
284 for_each_sgt_page(page, iter, obj->mm.pages) in i915_gem_object_map_page()
285 pages[i++] = page; in i915_gem_object_map_page()
286 vaddr = vmap(pages, n_pages, 0, pgprot); in i915_gem_object_map_page()
287 if (pages != stack) in i915_gem_object_map_page()
288 kvfree(pages); in i915_gem_object_map_page()
314 for_each_sgt_daddr(addr, iter, obj->mm.pages) in i915_gem_object_map_pfn()
322 /* get, pin, and map the pages of the object into kernel space */
430 * We allow removing the mapping from underneath pinned pages! in __i915_gem_object_release_map()
482 * individual pages from this range, cancel updating the in i915_gem_object_get_sg()