Lines Matching refs:bo
53 struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); in amdgpu_gem_prime_get_sg_table() local
54 int npages = bo->tbo.num_pages; in amdgpu_gem_prime_get_sg_table()
56 return drm_prime_pages_to_sg(bo->tbo.ttm->pages, npages); in amdgpu_gem_prime_get_sg_table()
70 struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); in amdgpu_gem_prime_vmap() local
73 ret = ttm_bo_kmap(&bo->tbo, 0, bo->tbo.num_pages, in amdgpu_gem_prime_vmap()
74 &bo->dma_buf_vmap); in amdgpu_gem_prime_vmap()
78 return bo->dma_buf_vmap.virtual; in amdgpu_gem_prime_vmap()
90 struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); in amdgpu_gem_prime_vunmap() local
92 ttm_bo_kunmap(&bo->dma_buf_vmap); in amdgpu_gem_prime_vunmap()
108 struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); in amdgpu_gem_prime_mmap() local
109 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_gem_prime_mmap()
110 unsigned asize = amdgpu_bo_size(bo); in amdgpu_gem_prime_mmap()
123 if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm) || in amdgpu_gem_prime_mmap()
124 (bo->flags & AMDGPU_GEM_CREATE_NO_CPU_ACCESS)) { in amdgpu_gem_prime_mmap()
127 vma->vm_pgoff += amdgpu_bo_mmap_offset(bo) >> PAGE_SHIFT; in amdgpu_gem_prime_mmap()
160 struct amdgpu_bo *bo; in amdgpu_gem_prime_import_sg_table() local
172 ret = amdgpu_bo_create(adev, &bp, &bo); in amdgpu_gem_prime_import_sg_table()
176 bo->tbo.sg = sg; in amdgpu_gem_prime_import_sg_table()
177 bo->tbo.ttm->sg = sg; in amdgpu_gem_prime_import_sg_table()
178 bo->allowed_domains = AMDGPU_GEM_DOMAIN_GTT; in amdgpu_gem_prime_import_sg_table()
179 bo->preferred_domains = AMDGPU_GEM_DOMAIN_GTT; in amdgpu_gem_prime_import_sg_table()
181 bo->prime_shared_count = 1; in amdgpu_gem_prime_import_sg_table()
184 return &bo->gem_base; in amdgpu_gem_prime_import_sg_table()
207 struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); in amdgpu_gem_map_attach() local
208 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_gem_map_attach()
215 r = amdgpu_bo_reserve(bo, false); in amdgpu_gem_map_attach()
225 r = reservation_object_wait_timeout_rcu(bo->tbo.resv, in amdgpu_gem_map_attach()
235 r = amdgpu_bo_pin(bo, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_gem_map_attach()
240 bo->prime_shared_count++; in amdgpu_gem_map_attach()
243 amdgpu_bo_unreserve(bo); in amdgpu_gem_map_attach()
263 struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); in amdgpu_gem_map_detach() local
264 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_gem_map_detach()
267 ret = amdgpu_bo_reserve(bo, true); in amdgpu_gem_map_detach()
271 amdgpu_bo_unpin(bo); in amdgpu_gem_map_detach()
272 if (attach->dev->driver != adev->dev->driver && bo->prime_shared_count) in amdgpu_gem_map_detach()
273 bo->prime_shared_count--; in amdgpu_gem_map_detach()
274 amdgpu_bo_unreserve(bo); in amdgpu_gem_map_detach()
289 struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); in amdgpu_gem_prime_res_obj() local
291 return bo->tbo.resv; in amdgpu_gem_prime_res_obj()
309 struct amdgpu_bo *bo = gem_to_amdgpu_bo(dma_buf->priv); in amdgpu_gem_begin_cpu_access() local
310 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); in amdgpu_gem_begin_cpu_access()
321 ret = amdgpu_bo_reserve(bo, false); in amdgpu_gem_begin_cpu_access()
325 if (!bo->pin_count && (bo->allowed_domains & AMDGPU_GEM_DOMAIN_GTT)) { in amdgpu_gem_begin_cpu_access()
326 amdgpu_bo_placement_from_domain(bo, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_gem_begin_cpu_access()
327 ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx); in amdgpu_gem_begin_cpu_access()
330 amdgpu_bo_unreserve(bo); in amdgpu_gem_begin_cpu_access()
364 struct amdgpu_bo *bo = gem_to_amdgpu_bo(gobj); in amdgpu_gem_prime_export() local
367 if (amdgpu_ttm_tt_get_usermm(bo->tbo.ttm) || in amdgpu_gem_prime_export()
368 bo->flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) in amdgpu_gem_prime_export()