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