Lines Matching refs:attach
58 static struct amdgpu_device *dma_buf_attach_adev(struct dma_buf_attachment *attach) in dma_buf_attach_adev() argument
60 if (attach->importer_ops == &amdgpu_dma_buf_attach_ops) { in dma_buf_attach_adev()
61 struct drm_gem_object *obj = attach->importer_priv; in dma_buf_attach_adev()
79 struct dma_buf_attachment *attach) in amdgpu_dma_buf_attach() argument
81 struct amdgpu_device *attach_adev = dma_buf_attach_adev(attach); in amdgpu_dma_buf_attach()
97 attach->peer2peer = false; in amdgpu_dma_buf_attach()
100 pci_p2pdma_distance(adev->pdev, attach->dev, false) < 0) in amdgpu_dma_buf_attach()
101 attach->peer2peer = false; in amdgpu_dma_buf_attach()
121 static int amdgpu_dma_buf_pin(struct dma_buf_attachment *attach) in amdgpu_dma_buf_pin() argument
123 struct dma_buf *dmabuf = attach->dmabuf; in amdgpu_dma_buf_pin()
140 list_for_each_entry(attach, &dmabuf->attachments, node) in amdgpu_dma_buf_pin()
141 if (!attach->peer2peer) in amdgpu_dma_buf_pin()
161 static void amdgpu_dma_buf_unpin(struct dma_buf_attachment *attach) in amdgpu_dma_buf_unpin() argument
163 struct drm_gem_object *obj = attach->dmabuf->priv; in amdgpu_dma_buf_unpin()
182 static struct sg_table *amdgpu_dma_buf_map(struct dma_buf_attachment *attach, in amdgpu_dma_buf_map() argument
185 struct dma_buf *dma_buf = attach->dmabuf; in amdgpu_dma_buf_map()
198 attach->peer2peer) { in amdgpu_dma_buf_map()
216 if (dma_map_sgtable(attach->dev, sgt, dir, in amdgpu_dma_buf_map()
224 dma_buf_attach_adev(attach), bo))) in amdgpu_dma_buf_map()
228 bo->tbo.base.size, attach->dev, in amdgpu_dma_buf_map()
236 attach->dev, dir, &sgt); in amdgpu_dma_buf_map()
262 static void amdgpu_dma_buf_unmap(struct dma_buf_attachment *attach, in amdgpu_dma_buf_unmap() argument
266 struct drm_gem_object *obj = attach->dmabuf->priv; in amdgpu_dma_buf_unmap()
271 amdgpu_ttm_mmio_remap_free_sgt(attach->dev, dir, sgt); in amdgpu_dma_buf_unmap()
276 dma_unmap_sgtable(attach->dev, sgt, dir, 0); in amdgpu_dma_buf_unmap()
280 amdgpu_vram_mgr_free_sgt(attach->dev, dir, sgt); in amdgpu_dma_buf_unmap()
356 .attach = amdgpu_dma_buf_attach,
467 amdgpu_dma_buf_move_notify(struct dma_buf_attachment *attach) in amdgpu_dma_buf_move_notify() argument
469 struct drm_gem_object *obj = attach->importer_priv; in amdgpu_dma_buf_move_notify()
553 struct dma_buf_attachment *attach; in amdgpu_gem_prime_import() local
572 attach = dma_buf_dynamic_attach(dma_buf, dev->dev, in amdgpu_gem_prime_import()
574 if (IS_ERR(attach)) { in amdgpu_gem_prime_import()
576 return ERR_CAST(attach); in amdgpu_gem_prime_import()
580 obj->import_attach = attach; in amdgpu_gem_prime_import()