Lines Matching refs:buffer

76 	struct system_heap_buffer *buffer = dmabuf->priv;  in system_heap_attach()  local
84 ret = dup_sg_table(&buffer->sg_table, &a->table); in system_heap_attach()
96 mutex_lock(&buffer->lock); in system_heap_attach()
97 list_add(&a->list, &buffer->attachments); in system_heap_attach()
98 mutex_unlock(&buffer->lock); in system_heap_attach()
106 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_detach() local
109 mutex_lock(&buffer->lock); in system_heap_detach()
111 mutex_unlock(&buffer->lock); in system_heap_detach()
145 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_dma_buf_begin_cpu_access() local
148 mutex_lock(&buffer->lock); in system_heap_dma_buf_begin_cpu_access()
150 if (buffer->vmap_cnt) in system_heap_dma_buf_begin_cpu_access()
151 invalidate_kernel_vmap_range(buffer->vaddr, buffer->len); in system_heap_dma_buf_begin_cpu_access()
153 list_for_each_entry(a, &buffer->attachments, list) { in system_heap_dma_buf_begin_cpu_access()
158 mutex_unlock(&buffer->lock); in system_heap_dma_buf_begin_cpu_access()
166 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_dma_buf_end_cpu_access() local
169 mutex_lock(&buffer->lock); in system_heap_dma_buf_end_cpu_access()
171 if (buffer->vmap_cnt) in system_heap_dma_buf_end_cpu_access()
172 flush_kernel_vmap_range(buffer->vaddr, buffer->len); in system_heap_dma_buf_end_cpu_access()
174 list_for_each_entry(a, &buffer->attachments, list) { in system_heap_dma_buf_end_cpu_access()
179 mutex_unlock(&buffer->lock); in system_heap_dma_buf_end_cpu_access()
186 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_mmap() local
187 struct sg_table *table = &buffer->sg_table; in system_heap_mmap()
206 static void *system_heap_do_vmap(struct system_heap_buffer *buffer) in system_heap_do_vmap() argument
208 struct sg_table *table = &buffer->sg_table; in system_heap_do_vmap()
209 int npages = PAGE_ALIGN(buffer->len) / PAGE_SIZE; in system_heap_do_vmap()
234 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_vmap() local
238 mutex_lock(&buffer->lock); in system_heap_vmap()
239 if (buffer->vmap_cnt) { in system_heap_vmap()
240 buffer->vmap_cnt++; in system_heap_vmap()
241 iosys_map_set_vaddr(map, buffer->vaddr); in system_heap_vmap()
245 vaddr = system_heap_do_vmap(buffer); in system_heap_vmap()
251 buffer->vaddr = vaddr; in system_heap_vmap()
252 buffer->vmap_cnt++; in system_heap_vmap()
253 iosys_map_set_vaddr(map, buffer->vaddr); in system_heap_vmap()
255 mutex_unlock(&buffer->lock); in system_heap_vmap()
262 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_vunmap() local
264 mutex_lock(&buffer->lock); in system_heap_vunmap()
265 if (!--buffer->vmap_cnt) { in system_heap_vunmap()
266 vunmap(buffer->vaddr); in system_heap_vunmap()
267 buffer->vaddr = NULL; in system_heap_vunmap()
269 mutex_unlock(&buffer->lock); in system_heap_vunmap()
275 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_dma_buf_release() local
280 table = &buffer->sg_table; in system_heap_dma_buf_release()
287 kfree(buffer); in system_heap_dma_buf_release()
328 struct system_heap_buffer *buffer; in system_heap_allocate() local
339 buffer = kzalloc(sizeof(*buffer), GFP_KERNEL); in system_heap_allocate()
340 if (!buffer) in system_heap_allocate()
343 INIT_LIST_HEAD(&buffer->attachments); in system_heap_allocate()
344 mutex_init(&buffer->lock); in system_heap_allocate()
345 buffer->heap = heap; in system_heap_allocate()
346 buffer->len = len; in system_heap_allocate()
370 table = &buffer->sg_table; in system_heap_allocate()
384 exp_info.size = buffer->len; in system_heap_allocate()
386 exp_info.priv = buffer; in system_heap_allocate()
404 kfree(buffer); in system_heap_allocate()