Lines Matching refs:pt
421 struct i915_page_table *pt; in alloc_pt() local
426 pt = kzalloc(sizeof(*pt), GFP_KERNEL); in alloc_pt()
427 if (!pt) in alloc_pt()
430 pt->used_ptes = kcalloc(BITS_TO_LONGS(count), sizeof(*pt->used_ptes), in alloc_pt()
433 if (!pt->used_ptes) in alloc_pt()
436 ret = setup_px(dev, pt); in alloc_pt()
440 return pt; in alloc_pt()
443 kfree(pt->used_ptes); in alloc_pt()
445 kfree(pt); in alloc_pt()
450 static void free_pt(struct drm_device *dev, struct i915_page_table *pt) in free_pt() argument
452 cleanup_px(dev, pt); in free_pt()
453 kfree(pt->used_ptes); in free_pt()
454 kfree(pt); in free_pt()
458 struct i915_page_table *pt) in gen8_initialize_pt() argument
465 fill_px(vm->dev, pt, scratch_pte); in gen8_initialize_pt()
469 struct i915_page_table *pt) in gen6_initialize_pt() argument
478 fill32_px(vm->dev, pt, scratch_pte); in gen6_initialize_pt()
716 struct i915_page_table *pt; in gen8_ppgtt_clear_pte_range() local
726 pt = pd->page_table[pde]; in gen8_ppgtt_clear_pte_range()
728 if (WARN_ON(!px_page(pt))) in gen8_ppgtt_clear_pte_range()
735 pt_vaddr = kmap_px(pt); in gen8_ppgtt_clear_pte_range()
742 kunmap_px(ppgtt, pt); in gen8_ppgtt_clear_pte_range()
796 struct i915_page_table *pt = pd->page_table[pde]; in gen8_ppgtt_insert_pte_entries() local
797 pt_vaddr = kmap_px(pt); in gen8_ppgtt_insert_pte_entries()
1019 struct i915_page_table *pt; in gen8_ppgtt_alloc_pagetabs() local
1023 gen8_for_each_pde(pt, pd, start, length, temp, pde) { in gen8_ppgtt_alloc_pagetabs()
1027 WARN_ON(pt == vm->scratch_pt); in gen8_ppgtt_alloc_pagetabs()
1031 pt = alloc_pt(dev); in gen8_ppgtt_alloc_pagetabs()
1032 if (IS_ERR(pt)) in gen8_ppgtt_alloc_pagetabs()
1035 gen8_initialize_pt(vm, pt); in gen8_ppgtt_alloc_pagetabs()
1036 pd->page_table[pde] = pt; in gen8_ppgtt_alloc_pagetabs()
1266 struct i915_page_table *pt; in gen8_alloc_va_range_3lvl() local
1274 gen8_for_each_pde(pt, pd, pd_start, pd_len, temp, pde) { in gen8_alloc_va_range_3lvl()
1276 WARN_ON(!pt); in gen8_alloc_va_range_3lvl()
1281 bitmap_set(pt->used_ptes, in gen8_alloc_va_range_3lvl()
1289 page_directory[pde] = gen8_pde_encode(px_dma(pt), in gen8_alloc_va_range_3lvl()
1291 trace_i915_page_table_entry_map(&ppgtt->base, pde, pt, in gen8_alloc_va_range_3lvl()
1396 struct i915_page_table *pt; in gen8_dump_pdp() local
1405 gen8_for_each_pde(pt, pd, pd_start, pd_len, temp, pde) { in gen8_dump_pdp()
1412 pt_vaddr = kmap_px(pt); in gen8_dump_pdp()
1612 const int pde, struct i915_page_table *pt) in gen6_write_pde() argument
1619 pd_entry = GEN6_PDE_ADDR_ENCODE(px_dma(pt)); in gen6_write_pde()
1631 struct i915_page_table *pt; in gen6_write_page_range() local
1634 gen6_for_each_pde(pt, pd, start, length, temp, pde) in gen6_write_page_range()
1635 gen6_write_pde(pd, pde, pt); in gen6_write_page_range()
1869 struct i915_page_table *pt; in gen6_alloc_va_range() local
1887 gen6_for_each_pde(pt, &ppgtt->pd, start, length, temp, pde) { in gen6_alloc_va_range()
1888 if (pt != vm->scratch_pt) { in gen6_alloc_va_range()
1889 WARN_ON(bitmap_empty(pt->used_ptes, GEN6_PTES)); in gen6_alloc_va_range()
1894 WARN_ON(!bitmap_empty(pt->used_ptes, GEN6_PTES)); in gen6_alloc_va_range()
1896 pt = alloc_pt(dev); in gen6_alloc_va_range()
1897 if (IS_ERR(pt)) { in gen6_alloc_va_range()
1898 ret = PTR_ERR(pt); in gen6_alloc_va_range()
1902 gen6_initialize_pt(vm, pt); in gen6_alloc_va_range()
1904 ppgtt->pd.page_table[pde] = pt; in gen6_alloc_va_range()
1912 gen6_for_each_pde(pt, &ppgtt->pd, start, length, temp, pde) { in gen6_alloc_va_range()
1920 gen6_write_pde(&ppgtt->pd, pde, pt); in gen6_alloc_va_range()
1922 trace_i915_page_table_entry_map(vm, pde, pt, in gen6_alloc_va_range()
1926 bitmap_or(pt->used_ptes, tmp_bitmap, pt->used_ptes, in gen6_alloc_va_range()
1941 struct i915_page_table *pt = ppgtt->pd.page_table[pde]; in gen6_alloc_va_range() local
1944 free_pt(vm->dev, pt); in gen6_alloc_va_range()
1982 struct i915_page_table *pt; in gen6_ppgtt_cleanup() local
1987 gen6_for_all_pdes(pt, ppgtt, pde) { in gen6_ppgtt_cleanup()
1988 if (pt != vm->scratch_pt) in gen6_ppgtt_cleanup()
1989 free_pt(ppgtt->base.dev, pt); in gen6_ppgtt_cleanup()