Lines Matching refs:adev

73 static int amdgpu_gart_dummy_page_init(struct amdgpu_device *adev)  in amdgpu_gart_dummy_page_init()  argument
77 if (adev->dummy_page_addr) in amdgpu_gart_dummy_page_init()
79 adev->dummy_page_addr = dma_map_page(&adev->pdev->dev, dummy_page, 0, in amdgpu_gart_dummy_page_init()
81 if (dma_mapping_error(&adev->pdev->dev, adev->dummy_page_addr)) { in amdgpu_gart_dummy_page_init()
82 dev_err(&adev->pdev->dev, "Failed to DMA MAP the dummy page\n"); in amdgpu_gart_dummy_page_init()
83 adev->dummy_page_addr = 0; in amdgpu_gart_dummy_page_init()
96 void amdgpu_gart_dummy_page_fini(struct amdgpu_device *adev) in amdgpu_gart_dummy_page_fini() argument
98 if (!adev->dummy_page_addr) in amdgpu_gart_dummy_page_fini()
100 dma_unmap_page(&adev->pdev->dev, adev->dummy_page_addr, PAGE_SIZE, in amdgpu_gart_dummy_page_fini()
102 adev->dummy_page_addr = 0; in amdgpu_gart_dummy_page_fini()
115 int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev) in amdgpu_gart_table_vram_alloc() argument
117 if (adev->gart.bo != NULL) in amdgpu_gart_table_vram_alloc()
120 return amdgpu_bo_create_kernel(adev, adev->gart.table_size, PAGE_SIZE, in amdgpu_gart_table_vram_alloc()
121 AMDGPU_GEM_DOMAIN_VRAM, &adev->gart.bo, in amdgpu_gart_table_vram_alloc()
122 NULL, (void *)&adev->gart.ptr); in amdgpu_gart_table_vram_alloc()
134 void amdgpu_gart_table_vram_free(struct amdgpu_device *adev) in amdgpu_gart_table_vram_free() argument
136 amdgpu_bo_free_kernel(&adev->gart.bo, NULL, (void *)&adev->gart.ptr); in amdgpu_gart_table_vram_free()
153 void amdgpu_gart_unbind(struct amdgpu_device *adev, uint64_t offset, in amdgpu_gart_unbind() argument
164 if (!adev->gart.ptr) in amdgpu_gart_unbind()
167 if (!drm_dev_enter(adev_to_drm(adev), &idx)) in amdgpu_gart_unbind()
173 page_base = adev->dummy_page_addr; in amdgpu_gart_unbind()
174 if (!adev->gart.ptr) in amdgpu_gart_unbind()
178 amdgpu_gmc_set_pte_pde(adev, adev->gart.ptr, in amdgpu_gart_unbind()
184 amdgpu_device_flush_hdp(adev, NULL); in amdgpu_gart_unbind()
185 for (i = 0; i < adev->num_vmhubs; i++) in amdgpu_gart_unbind()
186 amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0); in amdgpu_gart_unbind()
204 void amdgpu_gart_map(struct amdgpu_device *adev, uint64_t offset, in amdgpu_gart_map() argument
212 if (!drm_dev_enter(adev_to_drm(adev), &idx)) in amdgpu_gart_map()
220 amdgpu_gmc_set_pte_pde(adev, dst, t, page_base, flags); in amdgpu_gart_map()
240 void amdgpu_gart_bind(struct amdgpu_device *adev, uint64_t offset, in amdgpu_gart_bind() argument
244 if (!adev->gart.ptr) in amdgpu_gart_bind()
247 amdgpu_gart_map(adev, offset, pages, dma_addr, flags, adev->gart.ptr); in amdgpu_gart_bind()
258 void amdgpu_gart_invalidate_tlb(struct amdgpu_device *adev) in amdgpu_gart_invalidate_tlb() argument
262 if (!adev->gart.ptr) in amdgpu_gart_invalidate_tlb()
266 amdgpu_device_flush_hdp(adev, NULL); in amdgpu_gart_invalidate_tlb()
267 for (i = 0; i < adev->num_vmhubs; i++) in amdgpu_gart_invalidate_tlb()
268 amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0); in amdgpu_gart_invalidate_tlb()
279 int amdgpu_gart_init(struct amdgpu_device *adev) in amdgpu_gart_init() argument
283 if (adev->dummy_page_addr) in amdgpu_gart_init()
291 r = amdgpu_gart_dummy_page_init(adev); in amdgpu_gart_init()
295 adev->gart.num_cpu_pages = adev->gmc.gart_size / PAGE_SIZE; in amdgpu_gart_init()
296 adev->gart.num_gpu_pages = adev->gmc.gart_size / AMDGPU_GPU_PAGE_SIZE; in amdgpu_gart_init()
298 adev->gart.num_cpu_pages, adev->gart.num_gpu_pages); in amdgpu_gart_init()