Lines Matching defs:sgbuf
21 struct snd_sg_buf *sgbuf = dmab->private_data;
25 if (! sgbuf)
34 tmpb.dev.dev = sgbuf->dev;
35 for (i = 0; i < sgbuf->pages; i++) {
36 if (!(sgbuf->table[i].addr & ~PAGE_MASK))
38 tmpb.area = sgbuf->table[i].buf;
39 tmpb.addr = sgbuf->table[i].addr & PAGE_MASK;
40 tmpb.bytes = (sgbuf->table[i].addr & ~PAGE_MASK) << PAGE_SHIFT;
44 kfree(sgbuf->table);
45 kfree(sgbuf->page_table);
46 kfree(sgbuf);
58 struct snd_sg_buf *sgbuf;
68 dmab->private_data = sgbuf = kzalloc(sizeof(*sgbuf), GFP_KERNEL);
69 if (! sgbuf)
77 sgbuf->dev = device;
79 sgbuf->tblsize = sgbuf_align_table(pages);
80 table = kcalloc(sgbuf->tblsize, sizeof(*table), GFP_KERNEL);
83 sgbuf->table = table;
84 pgtable = kcalloc(sgbuf->tblsize, sizeof(*pgtable), GFP_KERNEL);
87 sgbuf->page_table = pgtable;
99 if (!sgbuf->pages)
103 size = sgbuf->pages * PAGE_SIZE;
117 sgbuf->pages += chunk;
123 sgbuf->size = size;
124 dmab->area = vmap(sgbuf->page_table, sgbuf->pages, VM_MAP, prot);
128 *res_size = sgbuf->size;