Lines Matching refs:dmabuf
1306 struct dma_buf *dmabuf = attach->dmabuf; in ffs_dmabuf_release() local
1309 dma_resv_lock(dmabuf->resv, NULL); in ffs_dmabuf_release()
1311 dma_resv_unlock(dmabuf->resv); in ffs_dmabuf_release()
1313 dma_buf_detach(attach->dmabuf, attach); in ffs_dmabuf_release()
1314 dma_buf_put(dmabuf); in ffs_dmabuf_release()
1425 static int ffs_dma_resv_lock(struct dma_buf *dmabuf, bool nonblock) in ffs_dma_resv_lock() argument
1428 return dma_resv_lock_interruptible(dmabuf->resv, NULL); in ffs_dma_resv_lock()
1430 if (!dma_resv_trylock(dmabuf->resv)) in ffs_dma_resv_lock()
1437 ffs_dmabuf_find_attachment(struct ffs_epfile *epfile, struct dma_buf *dmabuf) in ffs_dmabuf_find_attachment() argument
1447 && priv->attach->dmabuf == dmabuf) { in ffs_dmabuf_find_attachment()
1470 struct dma_buf *dmabuf; in ffs_dmabuf_attach() local
1476 dmabuf = dma_buf_get(fd); in ffs_dmabuf_attach()
1477 if (IS_ERR(dmabuf)) in ffs_dmabuf_attach()
1478 return PTR_ERR(dmabuf); in ffs_dmabuf_attach()
1480 attach = dma_buf_attach(dmabuf, gadget->dev.parent); in ffs_dmabuf_attach()
1494 err = ffs_dma_resv_lock(dmabuf, nonblock); in ffs_dmabuf_attach()
1499 dma_resv_unlock(dmabuf->resv); in ffs_dmabuf_attach()
1525 dma_buf_detach(dmabuf, attach); in ffs_dmabuf_attach()
1527 dma_buf_put(dmabuf); in ffs_dmabuf_attach()
1538 struct dma_buf *dmabuf; in ffs_dmabuf_detach() local
1541 dmabuf = dma_buf_get(fd); in ffs_dmabuf_detach()
1542 if (IS_ERR(dmabuf)) in ffs_dmabuf_detach()
1543 return PTR_ERR(dmabuf); in ffs_dmabuf_detach()
1549 && priv->attach->dmabuf == dmabuf) { in ffs_dmabuf_detach()
1566 dma_buf_put(dmabuf); in ffs_dmabuf_detach()
1581 struct dma_buf *dmabuf; in ffs_dmabuf_transfer() local
1592 dmabuf = dma_buf_get(req->fd); in ffs_dmabuf_transfer()
1593 if (IS_ERR(dmabuf)) in ffs_dmabuf_transfer()
1594 return PTR_ERR(dmabuf); in ffs_dmabuf_transfer()
1596 if (req->length > dmabuf->size || req->length == 0) { in ffs_dmabuf_transfer()
1601 attach = ffs_dmabuf_find_attachment(epfile, dmabuf); in ffs_dmabuf_transfer()
1615 ret = ffs_dma_resv_lock(dmabuf, nonblock); in ffs_dmabuf_transfer()
1621 retl = dma_resv_wait_timeout(dmabuf->resv, in ffs_dmabuf_transfer()
1631 ret = dma_resv_reserve_fences(dmabuf->resv, 1); in ffs_dmabuf_transfer()
1669 dma_resv_add_fence(dmabuf->resv, &fence->base, resv_dir); in ffs_dmabuf_transfer()
1670 dma_resv_unlock(dmabuf->resv); in ffs_dmabuf_transfer()
1695 dma_buf_put(dmabuf); in ffs_dmabuf_transfer()
1703 dma_resv_unlock(dmabuf->resv); in ffs_dmabuf_transfer()
1707 dma_buf_put(dmabuf); in ffs_dmabuf_transfer()