• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/sound/oss/

Lines Matching refs:dac

114 	struct hal2_codec dac;
264 DEBUG("dac ctl1: %04hx ", hal2_i_look16(hal2, H2I_ADC_C1));
265 DEBUG("dac ctl2: %08x ", hal2_i_look32(hal2, H2I_ADC_C2));
312 static void hal2_dac_interrupt(struct hal2_codec *dac)
316 spin_lock(&dac->lock);
319 running = dac->desc[dac->tail].cnt;
320 dac->desc[dac->tail].cnt = 0;
321 dac->desc[dac->tail].desc.cntinfo = HPCDMA_XIE | HPCDMA_EOX;
324 hal2_inc_tail(dac);
325 spin_unlock(&dac->lock);
327 wake_up(&dac->dma_wait);
354 if (hal2->dac.pbus.pbus->pbdma_ctrl & HPC3_PDMACTRL_INT) {
355 hal2_dac_interrupt(&hal2->dac);
393 unsigned int master = hal2->dac.master;
394 int inc = hal2->dac.inc;
395 int mod = hal2->dac.mod;
418 struct hal2_pbus *pbus = &hal2->dac.pbus;
427 sample_size = 2 * hal2->dac.voices;
435 (hal2->dac.format & AFMT_S16_LE ? HPC3_PDMACTRL_SEL : 0);
442 if (hal2->dac.format & AFMT_S16_LE)
451 | (hal2->dac.voices << H2I_C1_DATAT_SHIFT));
494 struct hal2_codec *dac = &hal2->dac;
495 struct hal2_pbus *pbus = &dac->pbus;
497 pbus->pbus->pbdma_dptr = hal2_desc_addr(dac, dac->tail);
516 hal2->dac.pbus.pbus->pbdma_ctrl = HPC3_PDMACTRL_LD;
661 struct hal2_codec *dac = &hal2->dac;
665 spin_lock_irqsave(&dac->lock, flags);
666 head = &dac->desc[dac->head];
669 buf = &dac->buffer[dac->head * H2_BLOCK_SIZE];
670 spin_unlock_irqrestore(&dac->lock, flags);
676 spin_lock_irqsave(&dac->lock, flags);
682 hal2_inc_head(dac);
683 head = &dac->desc[dac->head];
687 if (!(dac->pbus.pbus->pbdma_ctrl & HPC3_PDMACTRL_ISACT) && ret > 0)
689 spin_unlock_irqrestore(&dac->lock, flags);
701 struct hal2_codec *codec = (is_dac) ? &hal2->dac : &hal2->adc;
716 struct hal2_codec *dac = &hal2->dac;
719 signed long timeout = 1000 * H2_BLOCK_SIZE * 2 * dac->voices *
720 HZ / dac->sample_rate / 900;
722 while (dac->pbus.pbus->pbdma_ctrl & HPC3_PDMACTRL_ISACT) {
723 add_wait_queue(&dac->dma_wait, &wait);
726 spin_lock_irqsave(&dac->lock, flags);
727 if (dac->desc[dac->tail].cnt)
729 spin_unlock_irqrestore(&dac->lock, flags);
736 remove_wait_queue(&dac->dma_wait, &wait);
993 val = hal2_compute_rate(&hal2->dac, val);
994 hal2->dac.sample_rate = val;
1009 hal2->dac.voices = (val) ? 2 : 1;
1025 hal2->dac.voices = (val == 1) ? 1 : 2;
1033 val = hal2->dac.voices;
1052 hal2->dac.format = val;
1060 val = hal2->dac.format;
1071 struct hal2_codec *dac = &hal2->dac;
1076 spin_lock_irqsave(&dac->lock, flags);
1077 for (i = 0; i < dac->desc_count; i++)
1078 if (dac->desc[i].cnt == 0)
1080 spin_unlock_irqrestore(&dac->lock, flags);
1081 info.fragstotal = dac->desc_count;
1126 val = hal2->dac.sample_rate;
1134 val = hal2->dac.voices;
1203 struct hal2_codec *dac = &hal2->dac;
1207 if (mutex_lock_interruptible(&dac->sem))
1216 2 * dac->voices * HZ / dac->sample_rate / 900;
1229 add_wait_queue(&dac->dma_wait, &wait);
1232 spin_lock_irqsave(&dac->lock, flags);
1233 if (dac->desc[dac->head].cnt)
1235 spin_unlock_irqrestore(&dac->lock, flags);
1238 remove_wait_queue(&dac->dma_wait, &wait);
1246 mutex_unlock(&dac->sem);
1268 struct hal2_codec *dac = &hal2->dac;
1270 poll_wait(file, &dac->dma_wait, wait);
1271 spin_lock_irqsave(&dac->lock, flags);
1272 if (dac->desc[dac->head].cnt == 0)
1274 spin_unlock_irqrestore(&dac->lock, flags);
1306 struct hal2_codec *dac = &hal2->dac;
1308 if (dac->usecount)
1310 dac->format = AFMT_S16_BE;
1311 dac->voices = 1;
1312 dac->sample_rate = hal2_compute_rate(dac, 8000);
1314 err = hal2_alloc_dac_dmabuf(dac);
1318 dac->usecount++;
1338 struct hal2_codec *dac = &hal2->dac;
1340 mutex_lock(&dac->sem);
1342 hal2_free_dac_dmabuf(dac);
1343 dac->usecount--;
1344 mutex_unlock(&dac->sem);
1422 hal2_init_codec(&hal2->dac, hpc3, 0);
1448 hpc3->pbus_dmacfg[hal2->dac.pbus.pbusnr][0] = 0x8208844;