Lines Matching refs:ubuf

36 	struct udmabuf *ubuf = vma->vm_private_data;
39 if (pgoff >= ubuf->pagecount)
41 vmf->page = ubuf->pages[pgoff];
52 struct udmabuf *ubuf = buf->priv;
58 vma->vm_private_data = ubuf;
64 struct udmabuf *ubuf = buf->priv;
69 vaddr = vm_map_ram(ubuf->pages, ubuf->pagecount, -1);
79 struct udmabuf *ubuf = buf->priv;
83 vm_unmap_ram(map->vaddr, ubuf->pagecount);
89 struct udmabuf *ubuf = buf->priv;
96 ret = sg_alloc_table_from_pages(sg, ubuf->pages, ubuf->pagecount,
97 0, ubuf->pagecount << PAGE_SHIFT,
135 struct udmabuf *ubuf = buf->priv;
136 struct device *dev = ubuf->device->this_device;
139 if (ubuf->sg)
140 put_sg_table(dev, ubuf->sg, DMA_BIDIRECTIONAL);
142 for (pg = 0; pg < ubuf->pagecount; pg++)
143 put_page(ubuf->pages[pg]);
144 kfree(ubuf->pages);
145 kfree(ubuf);
151 struct udmabuf *ubuf = buf->priv;
152 struct device *dev = ubuf->device->this_device;
155 if (!ubuf->sg) {
156 ubuf->sg = get_sg_table(dev, buf, direction);
157 if (IS_ERR(ubuf->sg)) {
158 ret = PTR_ERR(ubuf->sg);
159 ubuf->sg = NULL;
162 dma_sync_sg_for_cpu(dev, ubuf->sg->sgl, ubuf->sg->nents,
172 struct udmabuf *ubuf = buf->priv;
173 struct device *dev = ubuf->device->this_device;
175 if (!ubuf->sg)
178 dma_sync_sg_for_device(dev, ubuf->sg->sgl, ubuf->sg->nents, direction);
204 struct udmabuf *ubuf;
211 ubuf = kzalloc(sizeof(*ubuf), GFP_KERNEL);
212 if (!ubuf)
221 ubuf->pagecount += list[i].size >> PAGE_SHIFT;
222 if (ubuf->pagecount > pglimit)
226 if (!ubuf->pagecount)
229 ubuf->pages = kmalloc_array(ubuf->pagecount, sizeof(*ubuf->pages),
231 if (!ubuf->pages) {
260 ubuf->pages[pgbuf++] = page;
267 exp_info.size = ubuf->pagecount << PAGE_SHIFT;
268 exp_info.priv = ubuf;
271 ubuf->device = device;
285 put_page(ubuf->pages[--pgbuf]);
288 kfree(ubuf->pages);
289 kfree(ubuf);