Lines Matching full:attach

51  * @attach: attachment
57 static struct amdgpu_device *dma_buf_attach_adev(struct dma_buf_attachment *attach) in dma_buf_attach_adev() argument
59 if (attach->importer_ops == &amdgpu_dma_buf_attach_ops) { in dma_buf_attach_adev()
60 struct drm_gem_object *obj = attach->importer_priv; in dma_buf_attach_adev()
70 * amdgpu_dma_buf_attach - &dma_buf_ops.attach implementation
72 * @dmabuf: DMA-buf where we attach to
73 * @attach: attachment to add
78 struct dma_buf_attachment *attach) in amdgpu_dma_buf_attach() argument
80 struct amdgpu_device *attach_adev = dma_buf_attach_adev(attach); in amdgpu_dma_buf_attach()
86 pci_p2pdma_distance(adev->pdev, attach->dev, false) < 0) in amdgpu_dma_buf_attach()
87 attach->peer2peer = false; in amdgpu_dma_buf_attach()
97 * @attach: attachment to pin down
101 static int amdgpu_dma_buf_pin(struct dma_buf_attachment *attach) in amdgpu_dma_buf_pin() argument
103 struct dma_buf *dmabuf = attach->dmabuf; in amdgpu_dma_buf_pin()
120 list_for_each_entry(attach, &dmabuf->attachments, node) in amdgpu_dma_buf_pin()
121 if (!attach->peer2peer) in amdgpu_dma_buf_pin()
137 * @attach: attachment to unpin
141 static void amdgpu_dma_buf_unpin(struct dma_buf_attachment *attach) in amdgpu_dma_buf_unpin() argument
143 struct drm_gem_object *obj = attach->dmabuf->priv; in amdgpu_dma_buf_unpin()
151 * @attach: DMA-buf attachment
162 static struct sg_table *amdgpu_dma_buf_map(struct dma_buf_attachment *attach, in amdgpu_dma_buf_map() argument
165 struct dma_buf *dma_buf = attach->dmabuf; in amdgpu_dma_buf_map()
178 attach->peer2peer) { in amdgpu_dma_buf_map()
196 if (dma_map_sgtable(attach->dev, sgt, dir, in amdgpu_dma_buf_map()
204 dma_buf_attach_adev(attach), bo))) in amdgpu_dma_buf_map()
208 bo->tbo.base.size, attach->dev, in amdgpu_dma_buf_map()
227 * @attach: DMA-buf attachment
234 static void amdgpu_dma_buf_unmap(struct dma_buf_attachment *attach, in amdgpu_dma_buf_unmap() argument
239 dma_unmap_sgtable(attach->dev, sgt, dir, 0); in amdgpu_dma_buf_unmap()
243 amdgpu_vram_mgr_free_sgt(attach->dev, dir, sgt); in amdgpu_dma_buf_unmap()
289 .attach = amdgpu_dma_buf_attach,
380 * amdgpu_dma_buf_move_notify - &attach.move_notify implementation
382 * @attach: the DMA-buf attachment
388 amdgpu_dma_buf_move_notify(struct dma_buf_attachment *attach) in amdgpu_dma_buf_move_notify() argument
390 struct drm_gem_object *obj = attach->importer_priv; in amdgpu_dma_buf_move_notify()
467 struct dma_buf_attachment *attach; in amdgpu_gem_prime_import() local
486 attach = dma_buf_dynamic_attach(dma_buf, dev->dev, in amdgpu_gem_prime_import()
488 if (IS_ERR(attach)) { in amdgpu_gem_prime_import()
490 return ERR_CAST(attach); in amdgpu_gem_prime_import()
494 obj->import_attach = attach; in amdgpu_gem_prime_import()