Lines Matching refs:sgbuf
727 struct snd_dma_sg_fallback *sgbuf) in __snd_dma_sg_fallback_free() argument
732 for (i = 0; i < sgbuf->count && sgbuf->pages[i]; i++) in __snd_dma_sg_fallback_free()
733 do_free_pages(page_address(sgbuf->pages[i]), PAGE_SIZE, wc); in __snd_dma_sg_fallback_free()
734 kvfree(sgbuf->pages); in __snd_dma_sg_fallback_free()
735 kvfree(sgbuf->addrs); in __snd_dma_sg_fallback_free()
736 kfree(sgbuf); in __snd_dma_sg_fallback_free()
741 struct snd_dma_sg_fallback *sgbuf; in snd_dma_sg_fallback_alloc() local
747 sgbuf = kzalloc(sizeof(*sgbuf), GFP_KERNEL); in snd_dma_sg_fallback_alloc()
748 if (!sgbuf) in snd_dma_sg_fallback_alloc()
754 sgbuf->pages = pages; in snd_dma_sg_fallback_alloc()
755 sgbuf->addrs = kvcalloc(count, sizeof(*sgbuf->addrs), GFP_KERNEL); in snd_dma_sg_fallback_alloc()
756 if (!sgbuf->addrs) in snd_dma_sg_fallback_alloc()
759 for (i = 0; i < count; sgbuf->count++, i++) { in snd_dma_sg_fallback_alloc()
760 p = do_alloc_pages(dmab->dev.dev, PAGE_SIZE, &sgbuf->addrs[i], wc); in snd_dma_sg_fallback_alloc()
763 sgbuf->pages[i] = virt_to_page(p); in snd_dma_sg_fallback_alloc()
769 dmab->private_data = sgbuf; in snd_dma_sg_fallback_alloc()
775 __snd_dma_sg_fallback_free(dmab, sgbuf); in snd_dma_sg_fallback_alloc()
788 struct snd_dma_sg_fallback *sgbuf = dmab->private_data; in snd_dma_sg_fallback_mmap() local
792 return vm_map_pages(area, sgbuf->pages, sgbuf->count); in snd_dma_sg_fallback_mmap()