Lines Matching refs:dmabuf
24 static int dma_buf_cache_destructor(struct dma_buf *dmabuf, void *dtor_data) in dma_buf_cache_destructor() argument
29 mutex_lock(&dmabuf->cache_lock); in dma_buf_cache_destructor()
31 data = dmabuf->dtor_data; in dma_buf_cache_destructor()
39 dma_buf_detach(dmabuf, cache->attach); in dma_buf_cache_destructor()
44 mutex_unlock(&dmabuf->cache_lock); in dma_buf_cache_destructor()
55 struct dma_buf *dmabuf = attach->dmabuf; in dma_buf_cache_get_cache() local
57 if (dmabuf->dtor != dma_buf_cache_destructor) in dma_buf_cache_get_cache()
60 data = dmabuf->dtor_data; in dma_buf_cache_get_cache()
70 void dma_buf_cache_detach(struct dma_buf *dmabuf, in dma_buf_cache_detach() argument
75 mutex_lock(&dmabuf->cache_lock); in dma_buf_cache_detach()
79 dma_buf_detach(dmabuf, attach); in dma_buf_cache_detach()
81 mutex_unlock(&dmabuf->cache_lock); in dma_buf_cache_detach()
85 struct dma_buf_attachment *dma_buf_cache_attach(struct dma_buf *dmabuf, in dma_buf_cache_attach() argument
92 mutex_lock(&dmabuf->cache_lock); in dma_buf_cache_attach()
94 if (!dmabuf->dtor) { in dma_buf_cache_attach()
101 dma_buf_set_destructor(dmabuf, dma_buf_cache_destructor, data); in dma_buf_cache_attach()
104 if (dmabuf->dtor && dmabuf->dtor != dma_buf_cache_destructor) { in dma_buf_cache_attach()
105 attach = dma_buf_attach(dmabuf, dev); in dma_buf_cache_attach()
109 data = dmabuf->dtor_data; in dma_buf_cache_attach()
125 attach = dma_buf_attach(dmabuf, dev); in dma_buf_cache_attach()
133 mutex_unlock(&dmabuf->cache_lock); in dma_buf_cache_attach()
140 dma_buf_set_destructor(dmabuf, NULL, NULL); in dma_buf_cache_attach()
142 mutex_unlock(&dmabuf->cache_lock); in dma_buf_cache_attach()
151 struct dma_buf *dmabuf = attach->dmabuf; in dma_buf_cache_unmap_attachment() local
154 mutex_lock(&dmabuf->cache_lock); in dma_buf_cache_unmap_attachment()
160 mutex_unlock(&dmabuf->cache_lock); in dma_buf_cache_unmap_attachment()
167 struct dma_buf *dmabuf = attach->dmabuf; in dma_buf_cache_map_attachment() local
171 mutex_lock(&dmabuf->cache_lock); in dma_buf_cache_map_attachment()
195 mutex_unlock(&dmabuf->cache_lock); in dma_buf_cache_map_attachment()