Lines Matching refs:dev

55 	struct saa7134_dev *dev;
70 struct saa7134_dev *dev;
89 static void saa7134_dma_stop(struct saa7134_dev *dev)
91 dev->dmasound.dma_blk = -1;
92 dev->dmasound.dma_running = 0;
93 saa7134_set_dmabits(dev);
105 static void saa7134_dma_start(struct saa7134_dev *dev)
107 dev->dmasound.dma_blk = 0;
108 dev->dmasound.dma_running = 1;
109 saa7134_set_dmabits(dev);
123 static void saa7134_irq_alsa_done(struct saa7134_dev *dev,
128 spin_lock(&dev->slock);
129 if (UNSET == dev->dmasound.dma_blk) {
137 if (0 == (dev->dmasound.dma_blk & 0x01))
141 if (1 == (dev->dmasound.dma_blk & 0x01))
150 if (dev->dmasound.read_count >= dev->dmasound.blksize * (dev->dmasound.blocks-2)) {
152 dev->dmasound.read_count,
153 dev->dmasound.bufsize, dev->dmasound.blocks);
154 spin_unlock(&dev->slock);
155 snd_pcm_stop_xrun(dev->dmasound.substream);
160 next_blk = (dev->dmasound.dma_blk + 2) % dev->dmasound.blocks;
161 saa_writel(reg,next_blk * dev->dmasound.blksize);
164 next_blk * dev->dmasound.blksize, dev->dmasound.blocks,
165 dev->dmasound.blksize, dev->dmasound.read_count);
168 dev->dmasound.dma_blk = (dev->dmasound.dma_blk + 1) % dev->dmasound.blocks;
169 dev->dmasound.read_count += dev->dmasound.blksize;
171 dev->dmasound.recording_on = reg;
173 if (dev->dmasound.read_count >= snd_pcm_lib_period_bytes(dev->dmasound.substream)) {
174 spin_unlock(&dev->slock);
175 snd_pcm_period_elapsed(dev->dmasound.substream);
176 spin_lock(&dev->slock);
180 spin_unlock(&dev->slock);
195 struct saa7134_dev *dev = dmasound->priv_data;
208 saa7134_irq_alsa_done(dev, status);
237 struct saa7134_dev *dev=pcm->dev;
240 spin_lock(&dev->slock);
243 saa7134_dma_start(dev);
246 saa7134_dma_stop(dev);
250 spin_unlock(&dev->slock);
255 static int saa7134_alsa_dma_init(struct saa7134_dev *dev,
258 struct saa7134_dmasound *dma = &dev->dmasound;
296 static int saa7134_alsa_dma_map(struct saa7134_dev *dev)
298 struct saa7134_dmasound *dma = &dev->dmasound;
300 dma->sglen = dma_map_sg(&dev->pci->dev, dma->sglist,
310 static int saa7134_alsa_dma_unmap(struct saa7134_dev *dev)
312 struct saa7134_dmasound *dma = &dev->dmasound;
317 dma_unmap_sg(&dev->pci->dev, dma->sglist, dma->nr_pages, DMA_FROM_DEVICE);
342 static int dsp_buffer_init(struct saa7134_dev *dev)
346 BUG_ON(!dev->dmasound.bufsize);
348 err = saa7134_alsa_dma_init(dev,
349 (dev->dmasound.bufsize + PAGE_SIZE) >> PAGE_SHIFT);
362 static int dsp_buffer_free(struct saa7134_dev *dev)
364 BUG_ON(!dev->dmasound.blksize);
366 saa7134_alsa_dma_free(&dev->dmasound);
368 dev->dmasound.blocks = 0;
369 dev->dmasound.blksize = 0;
370 dev->dmasound.bufsize = 0;
386 struct saa7134_dev *dev;
388 dev = chip->dev;
404 dev->dmasound.input = addr;
409 switch (dev->pci->device) {
423 rate = (32000 == dev->dmasound.rate) ?
453 saa_dsp_writel(dev, SAA7133_DIGITAL_OUTPUT_SEL1,
458 saa_dsp_writel(dev, SAA7133_DIGITAL_INPUT_XBAR1,
462 saa_dsp_writel(dev, SAA7133_DIGITAL_INPUT_XBAR1,
503 struct saa7134_dev *dev;
506 pcm->dev->dmasound.substream = substream;
508 dev = saa7134->dev;
525 switch (dev->pci->device) {
534 fmt |= (MIXER_ADDR_TVTUNER == dev->dmasound.input) ? 0xc0 : 0x80;
535 saa_writeb(SAA7134_NUM_SAMPLES0, ((dev->dmasound.blksize - 1) & 0x0000ff));
536 saa_writeb(SAA7134_NUM_SAMPLES1, ((dev->dmasound.blksize - 1) & 0x00ff00) >> 8);
537 saa_writeb(SAA7134_NUM_SAMPLES2, ((dev->dmasound.blksize - 1) & 0xff0000) >> 16);
549 saa_writel(SAA7133_NUM_SAMPLES, dev->dmasound.blksize -1);
560 (dev->dmasound.pt.dma >> 12);
565 saa_writel(SAA7134_RS_BA2(6),dev->dmasound.blksize);
569 dev->dmasound.rate = runtime->rate;
572 snd_saa7134_capsrc_set(saa7134->capture_ctl[dev->dmasound.input], 1, 1,
595 struct saa7134_dev *dev=pcm->dev;
597 if (dev->dmasound.read_count) {
598 dev->dmasound.read_count -= snd_pcm_lib_period_bytes(substream);
599 dev->dmasound.read_offset += snd_pcm_lib_period_bytes(substream);
600 if (dev->dmasound.read_offset == dev->dmasound.bufsize)
601 dev->dmasound.read_offset = 0;
604 return bytes_to_frames(runtime, dev->dmasound.read_offset);
665 struct saa7134_dev *dev;
679 dev = saa7134->dev;
681 if (dev->dmasound.blocks == periods &&
682 dev->dmasound.blksize == period_size)
687 saa7134_pgtable_free(dev->pci, &dev->dmasound.pt);
688 saa7134_alsa_dma_unmap(dev);
689 dsp_buffer_free(dev);
692 dev->dmasound.blocks = periods;
693 dev->dmasound.blksize = period_size;
694 dev->dmasound.bufsize = period_size * periods;
696 err = dsp_buffer_init(dev);
698 dev->dmasound.blocks = 0;
699 dev->dmasound.blksize = 0;
700 dev->dmasound.bufsize = 0;
704 err = saa7134_alsa_dma_map(dev);
706 dsp_buffer_free(dev);
709 err = saa7134_pgtable_alloc(dev->pci, &dev->dmasound.pt);
711 saa7134_alsa_dma_unmap(dev);
712 dsp_buffer_free(dev);
715 err = saa7134_pgtable_build(dev->pci, &dev->dmasound.pt,
716 dev->dmasound.sglist, dev->dmasound.sglen, 0);
718 saa7134_pgtable_free(dev->pci, &dev->dmasound.pt);
719 saa7134_alsa_dma_unmap(dev);
720 dsp_buffer_free(dev);
728 substream->runtime->dma_area = dev->dmasound.vaddr;
729 substream->runtime->dma_bytes = dev->dmasound.bufsize;
749 struct saa7134_dev *dev;
751 dev = saa7134->dev;
754 saa7134_pgtable_free(dev->pci, &dev->dmasound.pt);
755 saa7134_alsa_dma_unmap(dev);
756 dsp_buffer_free(dev);
775 struct saa7134_dev *dev = saa7134->dev;
778 dev->ctl_mute = 1;
779 saa7134_tvaudio_setmute(dev);
799 struct saa7134_dev *dev;
806 dev = saa7134->dev;
807 mutex_lock(&dev->dmasound.lock);
809 dev->dmasound.read_count = 0;
810 dev->dmasound.read_offset = 0;
812 amux = dev->input->amux;
815 dev->dmasound.input = amux - 1;
817 mutex_unlock(&dev->dmasound.lock);
823 pcm->dev=saa7134->dev;
832 if (dev->ctl_mute != 0) {
834 dev->ctl_mute = 0;
835 saa7134_tvaudio_setmute(dev);
930 struct saa7134_dev *dev = chip->dev;
956 switch (dev->pci->device) {
1096 if (chip->dev->dmasound.priv_data == NULL)
1100 free_irq(chip->irq, &chip->dev->dmasound);
1102 chip->dev->dmasound.priv_data = NULL;
1114 static int alsa_card_saa7134_create(struct saa7134_dev *dev, int devnum)
1127 err = snd_card_new(&dev->pci->dev, index[devnum], id[devnum],
1142 chip->dev = dev;
1146 chip->pci = dev->pci;
1147 chip->iobase = pci_resource_start(dev->pci, 0);
1150 err = request_irq(dev->pci->irq, saa7134_alsa_irq,
1151 IRQF_SHARED, dev->name,
1152 (void*) &dev->dmasound);
1156 dev->name, dev->pci->irq);
1160 chip->irq = dev->pci->irq;
1162 mutex_init(&dev->dmasound.lock);
1174 chip->dev->name, chip->iobase, chip->irq);
1177 dev->name, card->longname, index[devnum]);
1190 static int alsa_device_init(struct saa7134_dev *dev)
1192 dev->dmasound.priv_data = dev;
1193 alsa_card_saa7134_create(dev,dev->nr);
1197 static int alsa_device_exit(struct saa7134_dev *dev)
1199 if (!snd_saa7134_cards[dev->nr])
1202 snd_card_free(snd_saa7134_cards[dev->nr]);
1203 snd_saa7134_cards[dev->nr] = NULL;
1217 struct saa7134_dev *dev;
1224 list_for_each_entry(dev, &saa7134_devlist, devlist) {
1225 if (dev->pci->device == PCI_DEVICE_ID_PHILIPS_SAA7130)
1227 dev->name, saa7134_boards[dev->board].name);
1229 alsa_device_init(dev);