Lines Matching refs:buf
85 struct cx23885_audio_buffer *buf = chip->buf; in cx23885_alsa_dma_init() local
89 buf->vaddr = vmalloc_32(nr_pages << PAGE_SHIFT); in cx23885_alsa_dma_init()
90 if (NULL == buf->vaddr) { in cx23885_alsa_dma_init()
96 (unsigned long)buf->vaddr, in cx23885_alsa_dma_init()
99 memset(buf->vaddr, 0, nr_pages << PAGE_SHIFT); in cx23885_alsa_dma_init()
100 buf->nr_pages = nr_pages; in cx23885_alsa_dma_init()
102 buf->sglist = vzalloc(buf->nr_pages * sizeof(*buf->sglist)); in cx23885_alsa_dma_init()
103 if (NULL == buf->sglist) in cx23885_alsa_dma_init()
106 sg_init_table(buf->sglist, buf->nr_pages); in cx23885_alsa_dma_init()
107 for (i = 0; i < buf->nr_pages; i++) { in cx23885_alsa_dma_init()
108 pg = vmalloc_to_page(buf->vaddr + i * PAGE_SIZE); in cx23885_alsa_dma_init()
111 sg_set_page(&buf->sglist[i], pg, PAGE_SIZE, 0); in cx23885_alsa_dma_init()
116 vfree(buf->sglist); in cx23885_alsa_dma_init()
117 buf->sglist = NULL; in cx23885_alsa_dma_init()
119 vfree(buf->vaddr); in cx23885_alsa_dma_init()
120 buf->vaddr = NULL; in cx23885_alsa_dma_init()
126 struct cx23885_audio_buffer *buf = dev->buf; in cx23885_alsa_dma_map() local
128 buf->sglen = dma_map_sg(&dev->pci->dev, buf->sglist, in cx23885_alsa_dma_map()
129 buf->nr_pages, PCI_DMA_FROMDEVICE); in cx23885_alsa_dma_map()
131 if (0 == buf->sglen) { in cx23885_alsa_dma_map()
140 struct cx23885_audio_buffer *buf = dev->buf; in cx23885_alsa_dma_unmap() local
142 if (!buf->sglen) in cx23885_alsa_dma_unmap()
145 dma_unmap_sg(&dev->pci->dev, buf->sglist, buf->sglen, PCI_DMA_FROMDEVICE); in cx23885_alsa_dma_unmap()
146 buf->sglen = 0; in cx23885_alsa_dma_unmap()
150 static int cx23885_alsa_dma_free(struct cx23885_audio_buffer *buf) in cx23885_alsa_dma_free() argument
152 vfree(buf->sglist); in cx23885_alsa_dma_free()
153 buf->sglist = NULL; in cx23885_alsa_dma_free()
154 vfree(buf->vaddr); in cx23885_alsa_dma_free()
155 buf->vaddr = NULL; in cx23885_alsa_dma_free()
165 struct cx23885_audio_buffer *buf = chip->buf; in cx23885_start_audio_dma() local
176 cx23885_sram_channel_setup(chip->dev, audio_ch, buf->bpl, in cx23885_start_audio_dma()
177 buf->risc.dma); in cx23885_start_audio_dma()
180 cx_write(AUD_INT_A_LNGTH, buf->bpl); in cx23885_start_audio_dma()
190 "byte buffer\n", buf->bpl, cx_read(audio_ch->cmds_start+12)>>1, in cx23885_start_audio_dma()
191 chip->num_periods, buf->bpl * chip->num_periods); in cx23885_start_audio_dma()
279 cx23885_alsa_dma_free(chip->buf); in dsp_buffer_free()
280 risc = &chip->buf->risc; in dsp_buffer_free()
282 kfree(chip->buf); in dsp_buffer_free()
284 chip->buf = NULL; in dsp_buffer_free()
375 struct cx23885_audio_buffer *buf; in snd_cx23885_hw_params() local
390 buf = kzalloc(sizeof(*buf), GFP_KERNEL); in snd_cx23885_hw_params()
391 if (NULL == buf) in snd_cx23885_hw_params()
394 buf->bpl = chip->period_size; in snd_cx23885_hw_params()
395 chip->buf = buf; in snd_cx23885_hw_params()
406 ret = cx23885_risc_databuffer(chip->pci, &buf->risc, buf->sglist, in snd_cx23885_hw_params()
412 buf->risc.jmp[0] = cpu_to_le32(RISC_JUMP|RISC_IRQ1|RISC_CNT_INC); in snd_cx23885_hw_params()
413 buf->risc.jmp[1] = cpu_to_le32(buf->risc.dma); in snd_cx23885_hw_params()
414 buf->risc.jmp[2] = cpu_to_le32(0); /* bits 63-32 */ in snd_cx23885_hw_params()
416 substream->runtime->dma_area = chip->buf->vaddr; in snd_cx23885_hw_params()
423 kfree(buf); in snd_cx23885_hw_params()
424 chip->buf = NULL; in snd_cx23885_hw_params()