| /OK3568_Linux_fs/kernel/drivers/gpu/drm/i915/gt/ |
| H A D | gen6_ppgtt.c | 15 static inline void gen6_write_pde(const struct gen6_ppgtt *ppgtt, in gen6_write_pde() argument 19 dma_addr_t addr = pt ? px_dma(pt) : px_dma(ppgtt->base.vm.scratch[1]); in gen6_write_pde() 23 ppgtt->pd_addr + pde); in gen6_write_pde() 82 struct gen6_ppgtt * const ppgtt = to_gen6_ppgtt(i915_vm_to_ppgtt(vm)); in gen6_ppgtt_clear_range() local 91 i915_pt_entry(ppgtt->base.pd, pde++); in gen6_ppgtt_clear_range() 99 ppgtt->scan_for_unused_pt = true; in gen6_ppgtt_clear_range() 121 struct i915_ppgtt *ppgtt = i915_vm_to_ppgtt(vm); in gen6_ppgtt_insert_entries() local 122 struct i915_page_directory * const pd = ppgtt->pd; in gen6_ppgtt_insert_entries() 158 static void gen6_flush_pd(struct gen6_ppgtt *ppgtt, u64 start, u64 end) in gen6_flush_pd() argument 160 struct i915_page_directory * const pd = ppgtt->base.pd; in gen6_flush_pd() [all …]
|
| H A D | gen8_ppgtt.c | 53 static void gen8_ppgtt_notify_vgt(struct i915_ppgtt *ppgtt, bool create) in gen8_ppgtt_notify_vgt() argument 55 struct drm_i915_private *i915 = ppgtt->vm.i915; in gen8_ppgtt_notify_vgt() 56 struct intel_uncore *uncore = ppgtt->vm.gt->uncore; in gen8_ppgtt_notify_vgt() 61 atomic_inc(px_used(ppgtt->pd)); /* never remove */ in gen8_ppgtt_notify_vgt() 63 atomic_dec(px_used(ppgtt->pd)); in gen8_ppgtt_notify_vgt() 67 if (i915_vm_is_4lvl(&ppgtt->vm)) { in gen8_ppgtt_notify_vgt() 68 const u64 daddr = px_dma(ppgtt->pd); in gen8_ppgtt_notify_vgt() 80 const u64 daddr = i915_page_dir_dma_addr(ppgtt, i); in gen8_ppgtt_notify_vgt() 155 struct i915_ppgtt * const ppgtt = i915_vm_to_ppgtt(vm); in gen8_pdp_for_page_index() local 158 return ppgtt->pd; in gen8_pdp_for_page_index() [all …]
|
| H A D | intel_ppgtt.c | 167 struct i915_ppgtt *ppgtt; in i915_ppgtt_create() local 169 ppgtt = __ppgtt_create(gt); in i915_ppgtt_create() 170 if (IS_ERR(ppgtt)) in i915_ppgtt_create() 171 return ppgtt; in i915_ppgtt_create() 173 trace_i915_ppgtt_create(&ppgtt->vm); in i915_ppgtt_create() 175 return ppgtt; in i915_ppgtt_create() 298 void ppgtt_init(struct i915_ppgtt *ppgtt, struct intel_gt *gt) in ppgtt_init() argument 302 ppgtt->vm.gt = gt; in ppgtt_init() 303 ppgtt->vm.i915 = i915; in ppgtt_init() 304 ppgtt->vm.dma = &i915->drm.pdev->dev; in ppgtt_init() [all …]
|
| H A D | intel_lrc_reg.h | 32 #define ASSIGN_CTX_PDP(ppgtt, reg_state, n) do { \ argument 34 const u64 addr__ = i915_page_dir_dma_addr((ppgtt), (n)); \ 39 #define ASSIGN_CTX_PML4(ppgtt, reg_state) do { \ argument 41 const u64 addr__ = px_dma(ppgtt->pd); \
|
| H A D | intel_ggtt.c | 625 struct i915_ppgtt *ppgtt; in init_aliasing_ppgtt() local 628 ppgtt = i915_ppgtt_create(ggtt->vm.gt); in init_aliasing_ppgtt() 629 if (IS_ERR(ppgtt)) in init_aliasing_ppgtt() 630 return PTR_ERR(ppgtt); in init_aliasing_ppgtt() 632 if (GEM_WARN_ON(ppgtt->vm.total < ggtt->vm.total)) { in init_aliasing_ppgtt() 637 err = i915_vm_alloc_pt_stash(&ppgtt->vm, &stash, ggtt->vm.total); in init_aliasing_ppgtt() 641 err = i915_vm_pin_pt_stash(&ppgtt->vm, &stash); in init_aliasing_ppgtt() 651 ppgtt->vm.allocate_va_range(&ppgtt->vm, &stash, 0, ggtt->vm.total); in init_aliasing_ppgtt() 653 ggtt->alias = ppgtt; in init_aliasing_ppgtt() 654 ggtt->vm.bind_async_flags |= ppgtt->vm.bind_async_flags; in init_aliasing_ppgtt() [all …]
|
| H A D | intel_gtt.h | 476 i915_page_dir_dma_addr(const struct i915_ppgtt *ppgtt, const unsigned int n) in i915_page_dir_dma_addr() argument 478 struct i915_page_table *pt = ppgtt->pd->entry[n]; in i915_page_dir_dma_addr() 480 return __px_dma(pt ? px_base(pt) : ppgtt->vm.scratch[ppgtt->vm.top]); in i915_page_dir_dma_addr() 483 void ppgtt_init(struct i915_ppgtt *ppgtt, struct intel_gt *gt);
|
| H A D | selftest_hangcheck.c | 1318 struct i915_ppgtt *ppgtt; in igt_reset_evict_ppgtt() local 1325 ppgtt = i915_ppgtt_create(gt); in igt_reset_evict_ppgtt() 1326 if (IS_ERR(ppgtt)) in igt_reset_evict_ppgtt() 1327 return PTR_ERR(ppgtt); in igt_reset_evict_ppgtt() 1329 err = __igt_reset_evict_vma(gt, &ppgtt->vm, in igt_reset_evict_ppgtt() 1331 i915_vm_put(&ppgtt->vm); in igt_reset_evict_ppgtt()
|
| H A D | intel_lrc.c | 3608 struct i915_ppgtt * const ppgtt = i915_vm_to_ppgtt(rq->context->vm); in emit_pdps() local 3638 const dma_addr_t pd_daddr = i915_page_dir_dma_addr(ppgtt, i); in emit_pdps() 5261 static void init_ppgtt_reg_state(u32 *regs, const struct i915_ppgtt *ppgtt) in init_ppgtt_reg_state() argument 5263 if (i915_vm_is_4lvl(&ppgtt->vm)) { in init_ppgtt_reg_state() 5268 ASSIGN_CTX_PML4(ppgtt, regs); in init_ppgtt_reg_state() 5270 ASSIGN_CTX_PDP(ppgtt, regs, 3); in init_ppgtt_reg_state() 5271 ASSIGN_CTX_PDP(ppgtt, regs, 2); in init_ppgtt_reg_state() 5272 ASSIGN_CTX_PDP(ppgtt, regs, 1); in init_ppgtt_reg_state() 5273 ASSIGN_CTX_PDP(ppgtt, regs, 0); in init_ppgtt_reg_state()
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/i915/selftests/ |
| H A D | mock_gtt.c | 67 struct i915_ppgtt *ppgtt; in mock_ppgtt() local 69 ppgtt = kzalloc(sizeof(*ppgtt), GFP_KERNEL); in mock_ppgtt() 70 if (!ppgtt) in mock_ppgtt() 73 ppgtt->vm.gt = &i915->gt; in mock_ppgtt() 74 ppgtt->vm.i915 = i915; in mock_ppgtt() 75 ppgtt->vm.total = round_down(U64_MAX, PAGE_SIZE); in mock_ppgtt() 76 ppgtt->vm.file = ERR_PTR(-ENODEV); in mock_ppgtt() 77 ppgtt->vm.dma = &i915->drm.pdev->dev; in mock_ppgtt() 79 i915_address_space_init(&ppgtt->vm, VM_CLASS_PPGTT); in mock_ppgtt() 81 ppgtt->vm.alloc_pt_dma = alloc_pt_dma; in mock_ppgtt() [all …]
|
| H A D | i915_gem_gtt.c | 147 struct i915_ppgtt *ppgtt; in igt_ppgtt_alloc() local 156 ppgtt = i915_ppgtt_create(&dev_priv->gt); in igt_ppgtt_alloc() 157 if (IS_ERR(ppgtt)) in igt_ppgtt_alloc() 158 return PTR_ERR(ppgtt); in igt_ppgtt_alloc() 160 if (!ppgtt->vm.allocate_va_range) in igt_ppgtt_alloc() 171 limit = min(ppgtt->vm.total, limit); in igt_ppgtt_alloc() 177 err = i915_vm_alloc_pt_stash(&ppgtt->vm, &stash, size); in igt_ppgtt_alloc() 181 err = i915_vm_pin_pt_stash(&ppgtt->vm, &stash); in igt_ppgtt_alloc() 183 i915_vm_free_pt_stash(&ppgtt->vm, &stash); in igt_ppgtt_alloc() 187 ppgtt->vm.allocate_va_range(&ppgtt->vm, &stash, 0, size); in igt_ppgtt_alloc() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/i915/gem/selftests/ |
| H A D | huge_pages.c | 382 struct i915_ppgtt *ppgtt = arg; in igt_mock_exhaust_device_supported_pages() local 383 struct drm_i915_private *i915 = ppgtt->vm.i915; in igt_mock_exhaust_device_supported_pages() 419 vma = i915_vma_instance(obj, &ppgtt->vm, NULL); in igt_mock_exhaust_device_supported_pages() 458 struct i915_ppgtt *ppgtt = arg; in igt_mock_memory_region_huge_pages() local 459 struct drm_i915_private *i915 = ppgtt->vm.i915; in igt_mock_memory_region_huge_pages() 486 vma = i915_vma_instance(obj, &ppgtt->vm, NULL); in igt_mock_memory_region_huge_pages() 535 struct i915_ppgtt *ppgtt = arg; in igt_mock_ppgtt_misaligned_dma() local 536 struct drm_i915_private *i915 = ppgtt->vm.i915; in igt_mock_ppgtt_misaligned_dma() 578 vma = i915_vma_instance(obj, &ppgtt->vm, NULL); in igt_mock_ppgtt_misaligned_dma() 651 struct i915_ppgtt *ppgtt) in close_object_list() argument [all …]
|
| H A D | mock_context.c | 43 struct i915_ppgtt *ppgtt; in mock_context() local 47 ppgtt = mock_ppgtt(i915, name); in mock_context() 48 if (!ppgtt) in mock_context() 52 __set_ppgtt(ctx, &ppgtt->vm); in mock_context() 55 i915_vm_put(&ppgtt->vm); in mock_context()
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/i915/gvt/ |
| H A D | scheduler.c | 418 struct i915_ppgtt *ppgtt = i915_vm_to_ppgtt(ce->vm); in set_context_ppgtt_from_shadow() local 422 set_dma_address(ppgtt->pd, mm->ppgtt_mm.shadow_pdps[0]); in set_context_ppgtt_from_shadow() 426 i915_pd_entry(ppgtt->pd, i); in set_context_ppgtt_from_shadow() 530 if (!bb->ppgtt) { in prepare_shadow_batch_buffer() 1247 struct i915_ppgtt *ppgtt) in i915_context_ppgtt_root_restore() argument 1251 if (i915_vm_is_4lvl(&ppgtt->vm)) { in i915_context_ppgtt_root_restore() 1252 set_dma_address(ppgtt->pd, s->i915_context_pml4); in i915_context_ppgtt_root_restore() 1256 i915_pd_entry(ppgtt->pd, i); in i915_context_ppgtt_root_restore() 1308 struct i915_ppgtt *ppgtt) in i915_context_ppgtt_root_save() argument 1312 if (i915_vm_is_4lvl(&ppgtt->vm)) { in i915_context_ppgtt_root_save() [all …]
|
| H A D | scheduler.h | 128 bool ppgtt; member
|
| H A D | cmd_parser.c | 1881 bb->ppgtt = (s->buf_addr_type == GTT_BUFFER) ? false : true; in perform_bb_shadow() 1894 if (bb->ppgtt) in perform_bb_shadow()
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/i915/gem/ |
| H A D | i915_gem_context.c | 860 struct i915_ppgtt *ppgtt; in i915_gem_create_context() local 862 ppgtt = i915_ppgtt_create(&i915->gt); in i915_gem_create_context() 863 if (IS_ERR(ppgtt)) { in i915_gem_create_context() 865 PTR_ERR(ppgtt)); in i915_gem_create_context() 867 return ERR_CAST(ppgtt); in i915_gem_create_context() 871 __assign_ppgtt(ctx, &ppgtt->vm); in i915_gem_create_context() 874 i915_vm_put(&ppgtt->vm); in i915_gem_create_context() 1013 struct i915_ppgtt *ppgtt; in i915_gem_vm_create_ioctl() local 1023 ppgtt = i915_ppgtt_create(&i915->gt); in i915_gem_vm_create_ioctl() 1024 if (IS_ERR(ppgtt)) in i915_gem_vm_create_ioctl() [all …]
|