Lines Matching refs:buf
93 struct cx25821_audio_buffer *buf; member
149 struct cx25821_audio_buffer *buf = chip->buf; in cx25821_alsa_dma_init() local
153 buf->vaddr = vmalloc_32(nr_pages << PAGE_SHIFT); in cx25821_alsa_dma_init()
154 if (NULL == buf->vaddr) { in cx25821_alsa_dma_init()
160 (unsigned long)buf->vaddr, in cx25821_alsa_dma_init()
163 memset(buf->vaddr, 0, nr_pages << PAGE_SHIFT); in cx25821_alsa_dma_init()
164 buf->nr_pages = nr_pages; in cx25821_alsa_dma_init()
166 buf->sglist = vzalloc(buf->nr_pages * sizeof(*buf->sglist)); in cx25821_alsa_dma_init()
167 if (NULL == buf->sglist) in cx25821_alsa_dma_init()
170 sg_init_table(buf->sglist, buf->nr_pages); in cx25821_alsa_dma_init()
171 for (i = 0; i < buf->nr_pages; i++) { in cx25821_alsa_dma_init()
172 pg = vmalloc_to_page(buf->vaddr + i * PAGE_SIZE); in cx25821_alsa_dma_init()
175 sg_set_page(&buf->sglist[i], pg, PAGE_SIZE, 0); in cx25821_alsa_dma_init()
180 vfree(buf->sglist); in cx25821_alsa_dma_init()
181 buf->sglist = NULL; in cx25821_alsa_dma_init()
183 vfree(buf->vaddr); in cx25821_alsa_dma_init()
184 buf->vaddr = NULL; in cx25821_alsa_dma_init()
190 struct cx25821_audio_buffer *buf = dev->buf; in cx25821_alsa_dma_map() local
192 buf->sglen = dma_map_sg(&dev->pci->dev, buf->sglist, in cx25821_alsa_dma_map()
193 buf->nr_pages, PCI_DMA_FROMDEVICE); in cx25821_alsa_dma_map()
195 if (0 == buf->sglen) { in cx25821_alsa_dma_map()
204 struct cx25821_audio_buffer *buf = dev->buf; in cx25821_alsa_dma_unmap() local
206 if (!buf->sglen) in cx25821_alsa_dma_unmap()
209 dma_unmap_sg(&dev->pci->dev, buf->sglist, buf->sglen, PCI_DMA_FROMDEVICE); in cx25821_alsa_dma_unmap()
210 buf->sglen = 0; in cx25821_alsa_dma_unmap()
214 static int cx25821_alsa_dma_free(struct cx25821_audio_buffer *buf) in cx25821_alsa_dma_free() argument
216 vfree(buf->sglist); in cx25821_alsa_dma_free()
217 buf->sglist = NULL; in cx25821_alsa_dma_free()
218 vfree(buf->vaddr); in cx25821_alsa_dma_free()
219 buf->vaddr = NULL; in cx25821_alsa_dma_free()
229 struct cx25821_audio_buffer *buf = chip->buf; in _cx25821_start_audio_dma() local
243 cx25821_sram_channel_setup_audio(chip->dev, audio_ch, buf->bpl, in _cx25821_start_audio_dma()
244 buf->risc.dma); in _cx25821_start_audio_dma()
247 cx_write(AUD_A_LNGTH, buf->bpl); in _cx25821_start_audio_dma()
411 struct cx25821_riscmem *risc = &chip->buf->risc; in dsp_buffer_free()
417 cx25821_alsa_dma_free(chip->buf); in dsp_buffer_free()
419 kfree(chip->buf); in dsp_buffer_free()
421 chip->buf = NULL; in dsp_buffer_free()
513 struct cx25821_audio_buffer *buf; in snd_cx25821_hw_params() local
528 buf = kzalloc(sizeof(*buf), GFP_KERNEL); in snd_cx25821_hw_params()
529 if (NULL == buf) in snd_cx25821_hw_params()
535 buf->bpl = chip->period_size; in snd_cx25821_hw_params()
536 chip->buf = buf; in snd_cx25821_hw_params()
547 ret = cx25821_risc_databuffer_audio(chip->pci, &buf->risc, buf->sglist, in snd_cx25821_hw_params()
555 buf->risc.jmp[0] = cpu_to_le32(RISC_JUMP | RISC_IRQ1 | RISC_CNT_INC); in snd_cx25821_hw_params()
556 buf->risc.jmp[1] = cpu_to_le32(buf->risc.dma); in snd_cx25821_hw_params()
557 buf->risc.jmp[2] = cpu_to_le32(0); /* bits 63-32 */ in snd_cx25821_hw_params()
559 substream->runtime->dma_area = chip->buf->vaddr; in snd_cx25821_hw_params()
566 chip->buf = NULL; in snd_cx25821_hw_params()
567 kfree(buf); in snd_cx25821_hw_params()