Lines Matching full:buffer

86 	struct system_heap_buffer *buffer = dmabuf->priv;  in system_heap_attach()  local
94 table = dup_sg_table(&buffer->sg_table); in system_heap_attach()
107 mutex_lock(&buffer->lock); in system_heap_attach()
108 list_add(&a->list, &buffer->attachments); in system_heap_attach()
109 mutex_unlock(&buffer->lock); in system_heap_attach()
117 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_detach() local
120 mutex_lock(&buffer->lock); in system_heap_detach()
122 mutex_unlock(&buffer->lock); in system_heap_detach()
157 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_dma_buf_begin_cpu_access() local
160 mutex_lock(&buffer->lock); in system_heap_dma_buf_begin_cpu_access()
162 if (buffer->vmap_cnt) in system_heap_dma_buf_begin_cpu_access()
163 invalidate_kernel_vmap_range(buffer->vaddr, buffer->len); in system_heap_dma_buf_begin_cpu_access()
165 list_for_each_entry(a, &buffer->attachments, list) { in system_heap_dma_buf_begin_cpu_access()
170 mutex_unlock(&buffer->lock); in system_heap_dma_buf_begin_cpu_access()
178 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_dma_buf_end_cpu_access() local
181 mutex_lock(&buffer->lock); in system_heap_dma_buf_end_cpu_access()
183 if (buffer->vmap_cnt) in system_heap_dma_buf_end_cpu_access()
184 flush_kernel_vmap_range(buffer->vaddr, buffer->len); in system_heap_dma_buf_end_cpu_access()
186 list_for_each_entry(a, &buffer->attachments, list) { in system_heap_dma_buf_end_cpu_access()
191 mutex_unlock(&buffer->lock); in system_heap_dma_buf_end_cpu_access()
198 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_mmap() local
199 struct sg_table *table = &buffer->sg_table; in system_heap_mmap()
218 static void *system_heap_do_vmap(struct system_heap_buffer *buffer) in system_heap_do_vmap() argument
220 struct sg_table *table = &buffer->sg_table; in system_heap_do_vmap()
221 int npages = PAGE_ALIGN(buffer->len) / PAGE_SIZE; in system_heap_do_vmap()
246 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_vmap() local
250 mutex_lock(&buffer->lock); in system_heap_vmap()
251 if (buffer->vmap_cnt) { in system_heap_vmap()
252 buffer->vmap_cnt++; in system_heap_vmap()
253 iosys_map_set_vaddr(map, buffer->vaddr); in system_heap_vmap()
257 vaddr = system_heap_do_vmap(buffer); in system_heap_vmap()
263 buffer->vaddr = vaddr; in system_heap_vmap()
264 buffer->vmap_cnt++; in system_heap_vmap()
265 iosys_map_set_vaddr(map, buffer->vaddr); in system_heap_vmap()
267 mutex_unlock(&buffer->lock); in system_heap_vmap()
274 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_vunmap() local
276 mutex_lock(&buffer->lock); in system_heap_vunmap()
277 if (!--buffer->vmap_cnt) { in system_heap_vunmap()
278 vunmap(buffer->vaddr); in system_heap_vunmap()
279 buffer->vaddr = NULL; in system_heap_vunmap()
281 mutex_unlock(&buffer->lock); in system_heap_vunmap()
287 struct system_heap_buffer *buffer = dmabuf->priv; in system_heap_dma_buf_release() local
292 table = &buffer->sg_table; in system_heap_dma_buf_release()
299 kfree(buffer); in system_heap_dma_buf_release()
340 struct system_heap_buffer *buffer; in system_heap_allocate() local
351 buffer = kzalloc(sizeof(*buffer), GFP_KERNEL); in system_heap_allocate()
352 if (!buffer) in system_heap_allocate()
355 INIT_LIST_HEAD(&buffer->attachments); in system_heap_allocate()
356 mutex_init(&buffer->lock); in system_heap_allocate()
357 buffer->heap = heap; in system_heap_allocate()
358 buffer->len = len; in system_heap_allocate()
382 table = &buffer->sg_table; in system_heap_allocate()
396 exp_info.size = buffer->len; in system_heap_allocate()
398 exp_info.priv = buffer; in system_heap_allocate()
416 kfree(buffer); in system_heap_allocate()