Lines Matching full:attach
49 virtgpu_gem_map_dma_buf(struct dma_buf_attachment *attach, in virtgpu_gem_map_dma_buf() argument
52 struct drm_gem_object *obj = attach->dmabuf->priv; in virtgpu_gem_map_dma_buf()
56 return virtio_gpu_vram_map_dma_buf(bo, attach->dev, dir); in virtgpu_gem_map_dma_buf()
58 return drm_gem_map_dma_buf(attach, dir); in virtgpu_gem_map_dma_buf()
61 static void virtgpu_gem_unmap_dma_buf(struct dma_buf_attachment *attach, in virtgpu_gem_unmap_dma_buf() argument
65 struct drm_gem_object *obj = attach->dmabuf->priv; in virtgpu_gem_unmap_dma_buf()
69 virtio_gpu_vram_unmap_dma_buf(attach->dev, sgt, dir); in virtgpu_gem_unmap_dma_buf()
73 drm_gem_unmap_dma_buf(attach, sgt, dir); in virtgpu_gem_unmap_dma_buf()
79 .attach = virtio_dma_buf_attach,
150 struct dma_buf_attachment *attach) in virtgpu_dma_buf_import_sgt() argument
156 dma_resv_assert_held(attach->dmabuf->resv); in virtgpu_dma_buf_import_sgt()
158 ret = dma_resv_wait_timeout(attach->dmabuf->resv, in virtgpu_dma_buf_import_sgt()
164 sgt = dma_buf_map_attachment(attach, DMA_BIDIRECTIONAL); in virtgpu_dma_buf_import_sgt()
172 dma_buf_unmap_attachment(attach, sgt, DMA_BIDIRECTIONAL); in virtgpu_dma_buf_import_sgt()
189 struct dma_buf_attachment *attach = bo->base.base.import_attach; in virtgpu_dma_buf_unmap() local
191 dma_resv_assert_held(attach->dmabuf->resv); in virtgpu_dma_buf_unmap()
197 dma_buf_unmap_attachment(attach, bo->sgt, in virtgpu_dma_buf_unmap()
208 struct dma_buf_attachment *attach = obj->import_attach; in virtgpu_dma_buf_free_obj() local
210 if (attach) { in virtgpu_dma_buf_free_obj()
211 struct dma_buf *dmabuf = attach->dmabuf; in virtgpu_dma_buf_free_obj()
217 dma_buf_detach(dmabuf, attach); in virtgpu_dma_buf_free_obj()
231 struct dma_buf_attachment *attach) in virtgpu_dma_buf_init_obj() argument
235 struct dma_resv *resv = attach->dmabuf->resv; in virtgpu_dma_buf_init_obj()
248 ret = dma_buf_pin(attach); in virtgpu_dma_buf_init_obj()
252 ret = virtgpu_dma_buf_import_sgt(&ents, &nents, bo, attach); in virtgpu_dma_buf_init_obj()
259 params.size = attach->dmabuf->size; in virtgpu_dma_buf_init_obj()
265 dma_buf_unpin(attach); in virtgpu_dma_buf_init_obj()
271 dma_buf_unpin(attach); in virtgpu_dma_buf_init_obj()
282 static void virtgpu_dma_buf_move_notify(struct dma_buf_attachment *attach) in virtgpu_dma_buf_move_notify() argument
284 struct drm_gem_object *obj = attach->importer_priv; in virtgpu_dma_buf_move_notify()
299 struct dma_buf_attachment *attach; in virtgpu_gem_prime_import() local
328 attach = dma_buf_dynamic_attach(buf, dev->dev, in virtgpu_gem_prime_import()
330 if (IS_ERR(attach)) { in virtgpu_gem_prime_import()
332 return ERR_CAST(attach); in virtgpu_gem_prime_import()
335 obj->import_attach = attach; in virtgpu_gem_prime_import()
338 ret = virtgpu_dma_buf_init_obj(dev, bo, attach); in virtgpu_gem_prime_import()
346 struct drm_device *dev, struct dma_buf_attachment *attach, in virtgpu_gem_prime_import_sg_table() argument