• Home
  • Raw
  • Download

Lines Matching refs:adev

72 static int amdgpu_gart_dummy_page_init(struct amdgpu_device *adev)  in amdgpu_gart_dummy_page_init()  argument
76 if (adev->dummy_page_addr) in amdgpu_gart_dummy_page_init()
78 adev->dummy_page_addr = dma_map_page(&adev->pdev->dev, dummy_page, 0, in amdgpu_gart_dummy_page_init()
80 if (dma_mapping_error(&adev->pdev->dev, adev->dummy_page_addr)) { in amdgpu_gart_dummy_page_init()
81 dev_err(&adev->pdev->dev, "Failed to DMA MAP the dummy page\n"); in amdgpu_gart_dummy_page_init()
82 adev->dummy_page_addr = 0; in amdgpu_gart_dummy_page_init()
95 void amdgpu_gart_dummy_page_fini(struct amdgpu_device *adev) in amdgpu_gart_dummy_page_fini() argument
97 if (!adev->dummy_page_addr) in amdgpu_gart_dummy_page_fini()
99 dma_unmap_page(&adev->pdev->dev, adev->dummy_page_addr, PAGE_SIZE, in amdgpu_gart_dummy_page_fini()
101 adev->dummy_page_addr = 0; in amdgpu_gart_dummy_page_fini()
114 int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev) in amdgpu_gart_table_vram_alloc() argument
118 if (adev->gart.bo == NULL) { in amdgpu_gart_table_vram_alloc()
122 bp.size = adev->gart.table_size; in amdgpu_gart_table_vram_alloc()
131 r = amdgpu_bo_create(adev, &bp, &adev->gart.bo); in amdgpu_gart_table_vram_alloc()
149 int amdgpu_gart_table_vram_pin(struct amdgpu_device *adev) in amdgpu_gart_table_vram_pin() argument
153 r = amdgpu_bo_reserve(adev->gart.bo, false); in amdgpu_gart_table_vram_pin()
156 r = amdgpu_bo_pin(adev->gart.bo, AMDGPU_GEM_DOMAIN_VRAM); in amdgpu_gart_table_vram_pin()
158 amdgpu_bo_unreserve(adev->gart.bo); in amdgpu_gart_table_vram_pin()
161 r = amdgpu_bo_kmap(adev->gart.bo, &adev->gart.ptr); in amdgpu_gart_table_vram_pin()
163 amdgpu_bo_unpin(adev->gart.bo); in amdgpu_gart_table_vram_pin()
164 amdgpu_bo_unreserve(adev->gart.bo); in amdgpu_gart_table_vram_pin()
176 void amdgpu_gart_table_vram_unpin(struct amdgpu_device *adev) in amdgpu_gart_table_vram_unpin() argument
180 if (adev->gart.bo == NULL) { in amdgpu_gart_table_vram_unpin()
183 r = amdgpu_bo_reserve(adev->gart.bo, true); in amdgpu_gart_table_vram_unpin()
185 amdgpu_bo_kunmap(adev->gart.bo); in amdgpu_gart_table_vram_unpin()
186 amdgpu_bo_unpin(adev->gart.bo); in amdgpu_gart_table_vram_unpin()
187 amdgpu_bo_unreserve(adev->gart.bo); in amdgpu_gart_table_vram_unpin()
188 adev->gart.ptr = NULL; in amdgpu_gart_table_vram_unpin()
201 void amdgpu_gart_table_vram_free(struct amdgpu_device *adev) in amdgpu_gart_table_vram_free() argument
203 if (adev->gart.bo == NULL) { in amdgpu_gart_table_vram_free()
206 amdgpu_bo_unref(&adev->gart.bo); in amdgpu_gart_table_vram_free()
207 adev->gart.ptr = NULL; in amdgpu_gart_table_vram_free()
224 int amdgpu_gart_unbind(struct amdgpu_device *adev, uint64_t offset, in amdgpu_gart_unbind() argument
234 if (!adev->gart.ready) { in amdgpu_gart_unbind()
242 page_base = adev->dummy_page_addr; in amdgpu_gart_unbind()
243 if (!adev->gart.ptr) in amdgpu_gart_unbind()
247 amdgpu_gmc_set_pte_pde(adev, adev->gart.ptr, in amdgpu_gart_unbind()
253 amdgpu_device_flush_hdp(adev, NULL); in amdgpu_gart_unbind()
254 for (i = 0; i < adev->num_vmhubs; i++) in amdgpu_gart_unbind()
255 amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0); in amdgpu_gart_unbind()
273 int amdgpu_gart_map(struct amdgpu_device *adev, uint64_t offset, in amdgpu_gart_map() argument
280 if (!adev->gart.ready) { in amdgpu_gart_map()
290 amdgpu_gmc_set_pte_pde(adev, dst, t, page_base, flags); in amdgpu_gart_map()
310 int amdgpu_gart_bind(struct amdgpu_device *adev, uint64_t offset, in amdgpu_gart_bind() argument
314 if (!adev->gart.ready) { in amdgpu_gart_bind()
319 if (!adev->gart.ptr) in amdgpu_gart_bind()
322 return amdgpu_gart_map(adev, offset, pages, dma_addr, flags, in amdgpu_gart_bind()
323 adev->gart.ptr); in amdgpu_gart_bind()
334 void amdgpu_gart_invalidate_tlb(struct amdgpu_device *adev) in amdgpu_gart_invalidate_tlb() argument
339 amdgpu_device_flush_hdp(adev, NULL); in amdgpu_gart_invalidate_tlb()
340 for (i = 0; i < adev->num_vmhubs; i++) in amdgpu_gart_invalidate_tlb()
341 amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0); in amdgpu_gart_invalidate_tlb()
352 int amdgpu_gart_init(struct amdgpu_device *adev) in amdgpu_gart_init() argument
356 if (adev->dummy_page_addr) in amdgpu_gart_init()
364 r = amdgpu_gart_dummy_page_init(adev); in amdgpu_gart_init()
368 adev->gart.num_cpu_pages = adev->gmc.gart_size / PAGE_SIZE; in amdgpu_gart_init()
369 adev->gart.num_gpu_pages = adev->gmc.gart_size / AMDGPU_GPU_PAGE_SIZE; in amdgpu_gart_init()
371 adev->gart.num_cpu_pages, adev->gart.num_gpu_pages); in amdgpu_gart_init()