Lines Matching refs: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()
78 .attach = virtio_dma_buf_attach,
149 struct dma_buf_attachment *attach) in virtgpu_dma_buf_import_sgt() argument
155 dma_resv_assert_held(attach->dmabuf->resv); in virtgpu_dma_buf_import_sgt()
157 ret = dma_resv_wait_timeout(attach->dmabuf->resv, in virtgpu_dma_buf_import_sgt()
163 sgt = dma_buf_map_attachment(attach, DMA_BIDIRECTIONAL); in virtgpu_dma_buf_import_sgt()
171 dma_buf_unmap_attachment(attach, sgt, DMA_BIDIRECTIONAL); in virtgpu_dma_buf_import_sgt()
188 struct dma_buf_attachment *attach = bo->base.base.import_attach; in virtgpu_dma_buf_unmap() local
190 dma_resv_assert_held(attach->dmabuf->resv); in virtgpu_dma_buf_unmap()
196 dma_buf_unmap_attachment(attach, bo->sgt, in virtgpu_dma_buf_unmap()
207 struct dma_buf_attachment *attach = obj->import_attach; in virtgpu_dma_buf_free_obj() local
210 struct dma_buf *dmabuf = attach->dmabuf; in virtgpu_dma_buf_free_obj()
216 dma_buf_detach(dmabuf, attach); in virtgpu_dma_buf_free_obj()
230 struct dma_buf_attachment *attach) in virtgpu_dma_buf_init_obj() argument
234 struct dma_resv *resv = attach->dmabuf->resv; in virtgpu_dma_buf_init_obj()
247 ret = dma_buf_pin(attach); in virtgpu_dma_buf_init_obj()
251 ret = virtgpu_dma_buf_import_sgt(&ents, &nents, bo, attach); in virtgpu_dma_buf_init_obj()
258 params.size = attach->dmabuf->size; in virtgpu_dma_buf_init_obj()
264 dma_buf_unpin(attach); in virtgpu_dma_buf_init_obj()
270 dma_buf_unpin(attach); in virtgpu_dma_buf_init_obj()
281 static void virtgpu_dma_buf_move_notify(struct dma_buf_attachment *attach) in virtgpu_dma_buf_move_notify() argument
283 struct drm_gem_object *obj = attach->importer_priv; in virtgpu_dma_buf_move_notify()
298 struct dma_buf_attachment *attach; in virtgpu_gem_prime_import() local
327 attach = dma_buf_dynamic_attach(buf, dev->dev, in virtgpu_gem_prime_import()
329 if (IS_ERR(attach)) { in virtgpu_gem_prime_import()
331 return ERR_CAST(attach); in virtgpu_gem_prime_import()
334 obj->import_attach = attach; in virtgpu_gem_prime_import()
337 ret = virtgpu_dma_buf_init_obj(dev, bo, attach); in virtgpu_gem_prime_import()
345 struct drm_device *dev, struct dma_buf_attachment *attach, in virtgpu_gem_prime_import_sg_table() argument