Lines Matching refs:dmasound
113 dev->dmasound.dma_blk = -1; in saa7134_dma_stop()
114 dev->dmasound.dma_running = 0; in saa7134_dma_stop()
129 dev->dmasound.dma_blk = 0; in saa7134_dma_start()
130 dev->dmasound.dma_running = 1; in saa7134_dma_start()
151 if (UNSET == dev->dmasound.dma_blk) { in saa7134_irq_alsa_done()
159 if (0 == (dev->dmasound.dma_blk & 0x01)) in saa7134_irq_alsa_done()
163 if (1 == (dev->dmasound.dma_blk & 0x01)) in saa7134_irq_alsa_done()
172 if (dev->dmasound.read_count >= dev->dmasound.blksize * (dev->dmasound.blocks-2)) { in saa7134_irq_alsa_done()
173 dprintk("irq: overrun [full=%d/%d] - Blocks in %d\n",dev->dmasound.read_count, in saa7134_irq_alsa_done()
174 dev->dmasound.bufsize, dev->dmasound.blocks); in saa7134_irq_alsa_done()
176 snd_pcm_stop_xrun(dev->dmasound.substream); in saa7134_irq_alsa_done()
181 next_blk = (dev->dmasound.dma_blk + 2) % dev->dmasound.blocks; in saa7134_irq_alsa_done()
182 saa_writel(reg,next_blk * dev->dmasound.blksize); in saa7134_irq_alsa_done()
186 …next_blk * dev->dmasound.blksize, dev->dmasound.blocks, dev->dmasound.blksize, dev->dmasound.read_… in saa7134_irq_alsa_done()
189 dev->dmasound.dma_blk = (dev->dmasound.dma_blk + 1) % dev->dmasound.blocks; in saa7134_irq_alsa_done()
190 dev->dmasound.read_count += dev->dmasound.blksize; in saa7134_irq_alsa_done()
192 dev->dmasound.recording_on = reg; in saa7134_irq_alsa_done()
194 if (dev->dmasound.read_count >= snd_pcm_lib_period_bytes(dev->dmasound.substream)) { in saa7134_irq_alsa_done()
196 snd_pcm_period_elapsed(dev->dmasound.substream); in saa7134_irq_alsa_done()
215 struct saa7134_dmasound *dmasound = dev_id; in saa7134_alsa_irq() local
216 struct saa7134_dev *dev = dmasound->priv_data; in saa7134_alsa_irq()
278 struct saa7134_dmasound *dma = &dev->dmasound; in saa7134_alsa_dma_init()
319 struct saa7134_dmasound *dma = &dev->dmasound; in saa7134_alsa_dma_map()
333 struct saa7134_dmasound *dma = &dev->dmasound; in saa7134_alsa_dma_unmap()
367 BUG_ON(!dev->dmasound.bufsize); in dsp_buffer_init()
370 (dev->dmasound.bufsize + PAGE_SIZE) >> PAGE_SHIFT); in dsp_buffer_init()
385 BUG_ON(!dev->dmasound.blksize); in dsp_buffer_free()
387 saa7134_alsa_dma_free(&dev->dmasound); in dsp_buffer_free()
389 dev->dmasound.blocks = 0; in dsp_buffer_free()
390 dev->dmasound.blksize = 0; in dsp_buffer_free()
391 dev->dmasound.bufsize = 0; in dsp_buffer_free()
425 dev->dmasound.input = addr; in snd_saa7134_capsrc_set()
444 rate = (32000 == dev->dmasound.rate) ? in snd_saa7134_capsrc_set()
527 pcm->dev->dmasound.substream = substream; in snd_card_saa7134_capture_prepare()
555 fmt |= (MIXER_ADDR_TVTUNER == dev->dmasound.input) ? 0xc0 : 0x80; in snd_card_saa7134_capture_prepare()
556 saa_writeb(SAA7134_NUM_SAMPLES0, ((dev->dmasound.blksize - 1) & 0x0000ff)); in snd_card_saa7134_capture_prepare()
557 saa_writeb(SAA7134_NUM_SAMPLES1, ((dev->dmasound.blksize - 1) & 0x00ff00) >> 8); in snd_card_saa7134_capture_prepare()
558 saa_writeb(SAA7134_NUM_SAMPLES2, ((dev->dmasound.blksize - 1) & 0xff0000) >> 16); in snd_card_saa7134_capture_prepare()
570 saa_writel(SAA7133_NUM_SAMPLES, dev->dmasound.blksize -1); in snd_card_saa7134_capture_prepare()
581 (dev->dmasound.pt.dma >> 12); in snd_card_saa7134_capture_prepare()
586 saa_writel(SAA7134_RS_BA2(6),dev->dmasound.blksize); in snd_card_saa7134_capture_prepare()
590 dev->dmasound.rate = runtime->rate; in snd_card_saa7134_capture_prepare()
593 snd_saa7134_capsrc_set(saa7134->capture_ctl[dev->dmasound.input], 1, 1, in snd_card_saa7134_capture_prepare()
618 if (dev->dmasound.read_count) { in snd_card_saa7134_capture_pointer()
619 dev->dmasound.read_count -= snd_pcm_lib_period_bytes(substream); in snd_card_saa7134_capture_pointer()
620 dev->dmasound.read_offset += snd_pcm_lib_period_bytes(substream); in snd_card_saa7134_capture_pointer()
621 if (dev->dmasound.read_offset == dev->dmasound.bufsize) in snd_card_saa7134_capture_pointer()
622 dev->dmasound.read_offset = 0; in snd_card_saa7134_capture_pointer()
625 return bytes_to_frames(runtime, dev->dmasound.read_offset); in snd_card_saa7134_capture_pointer()
702 if (dev->dmasound.blocks == periods && in snd_card_saa7134_hw_params()
703 dev->dmasound.blksize == period_size) in snd_card_saa7134_hw_params()
708 saa7134_pgtable_free(dev->pci, &dev->dmasound.pt); in snd_card_saa7134_hw_params()
713 dev->dmasound.blocks = periods; in snd_card_saa7134_hw_params()
714 dev->dmasound.blksize = period_size; in snd_card_saa7134_hw_params()
715 dev->dmasound.bufsize = period_size * periods; in snd_card_saa7134_hw_params()
719 dev->dmasound.blocks = 0; in snd_card_saa7134_hw_params()
720 dev->dmasound.blksize = 0; in snd_card_saa7134_hw_params()
721 dev->dmasound.bufsize = 0; in snd_card_saa7134_hw_params()
730 err = saa7134_pgtable_alloc(dev->pci, &dev->dmasound.pt); in snd_card_saa7134_hw_params()
736 err = saa7134_pgtable_build(dev->pci, &dev->dmasound.pt, in snd_card_saa7134_hw_params()
737 dev->dmasound.sglist, dev->dmasound.sglen, 0); in snd_card_saa7134_hw_params()
739 saa7134_pgtable_free(dev->pci, &dev->dmasound.pt); in snd_card_saa7134_hw_params()
749 substream->runtime->dma_area = dev->dmasound.vaddr; in snd_card_saa7134_hw_params()
750 substream->runtime->dma_bytes = dev->dmasound.bufsize; in snd_card_saa7134_hw_params()
775 saa7134_pgtable_free(dev->pci, &dev->dmasound.pt); in snd_card_saa7134_hw_free()
829 mutex_lock(&dev->dmasound.lock); in snd_card_saa7134_capture_open()
831 dev->dmasound.read_count = 0; in snd_card_saa7134_capture_open()
832 dev->dmasound.read_offset = 0; in snd_card_saa7134_capture_open()
837 dev->dmasound.input = amux - 1; in snd_card_saa7134_capture_open()
839 mutex_unlock(&dev->dmasound.lock); in snd_card_saa7134_capture_open()
1119 if (chip->dev->dmasound.priv_data == NULL) in snd_saa7134_free()
1123 free_irq(chip->irq, &chip->dev->dmasound); in snd_saa7134_free()
1125 chip->dev->dmasound.priv_data = NULL; in snd_saa7134_free()
1175 (void*) &dev->dmasound); in alsa_card_saa7134_create()
1185 mutex_init(&dev->dmasound.lock); in alsa_card_saa7134_create()
1214 dev->dmasound.priv_data = dev; in alsa_device_init()