Lines Matching refs:pt
323 static void unmap_and_free_pt(struct i915_page_table_entry *pt, in unmap_and_free_pt() argument
326 if (WARN_ON(!pt->page)) in unmap_and_free_pt()
329 i915_dma_unmap_single(pt, dev); in unmap_and_free_pt()
330 __free_page(pt->page); in unmap_and_free_pt()
331 kfree(pt->used_ptes); in unmap_and_free_pt()
332 kfree(pt); in unmap_and_free_pt()
337 struct i915_page_table_entry *pt; in alloc_pt_single() local
342 pt = kzalloc(sizeof(*pt), GFP_KERNEL); in alloc_pt_single()
343 if (!pt) in alloc_pt_single()
346 pt->used_ptes = kcalloc(BITS_TO_LONGS(count), sizeof(*pt->used_ptes), in alloc_pt_single()
349 if (!pt->used_ptes) in alloc_pt_single()
352 pt->page = alloc_page(GFP_KERNEL); in alloc_pt_single()
353 if (!pt->page) in alloc_pt_single()
356 ret = i915_dma_map_single(pt, dev); in alloc_pt_single()
360 return pt; in alloc_pt_single()
363 __free_page(pt->page); in alloc_pt_single()
365 kfree(pt->used_ptes); in alloc_pt_single()
367 kfree(pt); in alloc_pt_single()
396 struct i915_page_table_entry *pt = alloc_pt_single(dev); in alloc_pt_range() local
398 if (IS_ERR(pt)) { in alloc_pt_range()
399 ret = PTR_ERR(pt); in alloc_pt_range()
405 pd->page_table[i] = pt; in alloc_pt_range()
501 struct i915_page_table_entry *pt; in gen8_ppgtt_clear_range() local
512 pt = pd->page_table[pde]; in gen8_ppgtt_clear_range()
514 if (WARN_ON(!pt->page)) in gen8_ppgtt_clear_range()
517 page_table = pt->page; in gen8_ppgtt_clear_range()
563 struct i915_page_table_entry *pt = pd->page_table[pde]; in gen8_ppgtt_insert_entries() local
564 struct page *page_table = pt->page; in gen8_ppgtt_insert_entries()
636 struct i915_page_table_entry *pt; in gen8_ppgtt_unmap_pages() local
642 pt = pd->page_table[j]; in gen8_ppgtt_unmap_pages()
643 addr = pt->daddr; in gen8_ppgtt_unmap_pages()
747 const int pt) in gen8_ppgtt_setup_page_tables() argument
751 struct i915_page_table_entry *ptab = pdir->page_table[pt]; in gen8_ppgtt_setup_page_tables()
822 struct i915_page_table_entry *pt = pd->page_table[j]; in gen8_ppgtt_init() local
823 dma_addr_t addr = pt->daddr; in gen8_ppgtt_init()
918 const int pde, struct i915_page_table_entry *pt) in gen6_write_pde() argument
925 pd_entry = GEN6_PDE_ADDR_ENCODE(pt->daddr); in gen6_write_pde()
937 struct i915_page_table_entry *pt; in gen6_write_page_range() local
940 gen6_for_each_pde(pt, pd, start, length, temp, pde) in gen6_write_page_range()
941 gen6_write_pde(pd, pde, pt); in gen6_write_page_range()
1172 struct i915_page_table_entry *pt) in gen6_initialize_pt() argument
1182 pt_vaddr = kmap_atomic(pt->page); in gen6_initialize_pt()
1198 struct i915_page_table_entry *pt; in gen6_alloc_va_range() local
1212 gen6_for_each_pde(pt, &ppgtt->pd, start, length, temp, pde) { in gen6_alloc_va_range()
1213 if (pt != ppgtt->scratch_pt) { in gen6_alloc_va_range()
1214 WARN_ON(bitmap_empty(pt->used_ptes, GEN6_PTES)); in gen6_alloc_va_range()
1219 WARN_ON(!bitmap_empty(pt->used_ptes, GEN6_PTES)); in gen6_alloc_va_range()
1221 pt = alloc_pt_single(dev); in gen6_alloc_va_range()
1222 if (IS_ERR(pt)) { in gen6_alloc_va_range()
1223 ret = PTR_ERR(pt); in gen6_alloc_va_range()
1227 gen6_initialize_pt(vm, pt); in gen6_alloc_va_range()
1229 ppgtt->pd.page_table[pde] = pt; in gen6_alloc_va_range()
1237 gen6_for_each_pde(pt, &ppgtt->pd, start, length, temp, pde) { in gen6_alloc_va_range()
1245 gen6_write_pde(&ppgtt->pd, pde, pt); in gen6_alloc_va_range()
1247 trace_i915_page_table_entry_map(vm, pde, pt, in gen6_alloc_va_range()
1251 bitmap_or(pt->used_ptes, tmp_bitmap, pt->used_ptes, in gen6_alloc_va_range()
1266 struct i915_page_table_entry *pt = ppgtt->pd.page_table[pde]; in gen6_alloc_va_range() local
1269 unmap_and_free_pt(pt, vm->dev); in gen6_alloc_va_range()
1281 struct i915_page_table_entry *pt = ppgtt->pd.page_table[i]; in gen6_ppgtt_free() local
1283 if (pt != ppgtt->scratch_pt) in gen6_ppgtt_free()