Lines Matching refs:buffer

85 	struct system_heap_buffer *buffer = dmabuf->priv;
93 table = dup_sg_table(&buffer->sg_table);
106 mutex_lock(&buffer->lock);
107 list_add(&a->list, &buffer->attachments);
108 mutex_unlock(&buffer->lock);
116 struct system_heap_buffer *buffer = dmabuf->priv;
119 mutex_lock(&buffer->lock);
121 mutex_unlock(&buffer->lock);
156 struct system_heap_buffer *buffer = dmabuf->priv;
159 mutex_lock(&buffer->lock);
161 if (buffer->vmap_cnt)
162 invalidate_kernel_vmap_range(buffer->vaddr, buffer->len);
164 list_for_each_entry(a, &buffer->attachments, list) {
169 mutex_unlock(&buffer->lock);
177 struct system_heap_buffer *buffer = dmabuf->priv;
180 mutex_lock(&buffer->lock);
182 if (buffer->vmap_cnt)
183 flush_kernel_vmap_range(buffer->vaddr, buffer->len);
185 list_for_each_entry(a, &buffer->attachments, list) {
190 mutex_unlock(&buffer->lock);
197 struct system_heap_buffer *buffer = dmabuf->priv;
198 struct sg_table *table = &buffer->sg_table;
217 static void *system_heap_do_vmap(struct system_heap_buffer *buffer)
219 struct sg_table *table = &buffer->sg_table;
220 int npages = PAGE_ALIGN(buffer->len) / PAGE_SIZE;
245 struct system_heap_buffer *buffer = dmabuf->priv;
249 mutex_lock(&buffer->lock);
250 if (buffer->vmap_cnt) {
251 buffer->vmap_cnt++;
252 iosys_map_set_vaddr(map, buffer->vaddr);
256 vaddr = system_heap_do_vmap(buffer);
262 buffer->vaddr = vaddr;
263 buffer->vmap_cnt++;
264 iosys_map_set_vaddr(map, buffer->vaddr);
266 mutex_unlock(&buffer->lock);
273 struct system_heap_buffer *buffer = dmabuf->priv;
275 mutex_lock(&buffer->lock);
276 if (!--buffer->vmap_cnt) {
277 vunmap(buffer->vaddr);
278 buffer->vaddr = NULL;
280 mutex_unlock(&buffer->lock);
286 struct system_heap_buffer *buffer = dmabuf->priv;
291 table = &buffer->sg_table;
298 kfree(buffer);
339 struct system_heap_buffer *buffer;
350 buffer = kzalloc(sizeof(*buffer), GFP_KERNEL);
351 if (!buffer)
354 INIT_LIST_HEAD(&buffer->attachments);
355 mutex_init(&buffer->lock);
356 buffer->heap = heap;
357 buffer->len = len;
381 table = &buffer->sg_table;
395 exp_info.size = buffer->len;
397 exp_info.priv = buffer;
415 kfree(buffer);