• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/oss/

Lines Matching refs:adev

38 static int local_start_dma(struct audio_operations *adev, unsigned long physaddr, int count, int dma_mode);
185 static int open_dmap(struct audio_operations *adev, int mode, struct dma_buffparms *dmap)
198 if (dmap->dma >= 0 && sound_open_dma(dmap->dma, adev->name)) {
217 static void close_dmap(struct audio_operations *adev, struct dma_buffparms *dmap)
279 struct audio_operations *adev = audio_devs[dev];
284 if (!adev)
286 if (!(adev->flags & DMA_DUPLEX))
287 adev->dmap_in = adev->dmap_out;
288 check_driver(adev->d);
290 if ((retval = adev->d->open(dev, mode)) < 0)
292 dmap_out = adev->dmap_out;
293 dmap_in = adev->dmap_in;
295 adev->flags &= ~DMA_DUPLEX;
298 if ((retval = open_dmap(adev, mode, dmap_out)) < 0) {
299 adev->d->close(dev);
303 adev->enable_bits = mode;
305 if (mode == OPEN_READ || (mode != OPEN_WRITE && (adev->flags & DMA_DUPLEX))) {
306 if ((retval = open_dmap(adev, mode, dmap_in)) < 0) {
307 adev->d->close(dev);
309 close_dmap(adev, dmap_out);
313 adev->open_mode = mode;
314 adev->go = 1;
316 adev->d->set_bits(dev, 8);
317 adev->d->set_channels(dev, 1);
318 adev->d->set_speed(dev, DSP_DEFAULT_SPEED);
319 if (adev->dmap_out->dma_mode == DMODE_OUTPUT)
320 memset(adev->dmap_out->raw_buf, adev->dmap_out->neutral_byte,
321 adev->dmap_out->bytes_in_use);
336 struct audio_operations *adev = audio_devs[dev];
338 struct dma_buffparms *dmap = adev->dmap_out;
347 adev->dmap_out->flags |= DMA_SYNCING;
349 adev->dmap_out->underrun_count = 0;
350 if (!signal_pending(current) && adev->dmap_out->qlen &&
351 adev->dmap_out->underrun_count == 0){
353 interruptible_sleep_on_timeout(&adev->out_sleeper,
357 adev->dmap_out->flags &= ~(DMA_SYNCING | DMA_ACTIVE);
362 if (!(adev->flags & DMA_DUPLEX) || !adev->d->halt_output)
363 adev->d->halt_io(dev);
365 adev->d->halt_output(dev);
366 adev->dmap_out->flags &= ~DMA_STARTED;
374 reorganize_buffers(dev, adev->dmap_out, 0);
381 struct audio_operations *adev = audio_devs[dev];
383 struct dma_buffparms *dmap = adev->dmap_in;
386 if (!(adev->flags & DMA_DUPLEX) || !adev->d->halt_input)
387 adev->d->halt_io(dev);
389 adev->d->halt_input(dev);
390 adev->dmap_in->flags &= ~DMA_STARTED;
394 reorganize_buffers(dev, adev->dmap_in, 1);
400 struct audio_operations *adev = audio_devs[dev];
402 if (!((adev->enable_bits * adev->go) & PCM_ENABLE_OUTPUT))
406 if (!(dmap->flags & DMA_ACTIVE) || !(adev->flags & DMA_AUTOMODE) || (dmap->flags & DMA_NODMA)) {
409 if (adev->d->prepare_for_output(dev, dmap->fragment_size, dmap->nbufs))
412 local_start_dma(adev, dmap->raw_buf_phys, dmap->bytes_in_use,DMA_MODE_WRITE);
418 adev->d->output_block(dev, dmap->raw_buf_phys + dmap->qhead * dmap->fragment_size,
420 if (adev->d->trigger)
421 adev->d->trigger(dev,adev->enable_bits * adev->go);
428 struct audio_operations *adev = audio_devs[dev];
433 if (!adev->go && !(adev->enable_bits & PCM_ENABLE_OUTPUT))
436 if (adev->dmap_out->dma_mode == DMODE_OUTPUT) {
437 dmap = adev->dmap_out;
441 adev->dmap_out->flags |= DMA_SYNCING;
442 adev->dmap_out->underrun_count = 0;
443 while (!signal_pending(current) && n++ < adev->dmap_out->nbufs &&
444 adev->dmap_out->qlen && adev->dmap_out->underrun_count == 0) {
447 t = interruptible_sleep_on_timeout(&adev->out_sleeper, t);
450 adev->dmap_out->flags &= ~DMA_SYNCING;
452 return adev->dmap_out->qlen;
455 adev->dmap_out->flags &= ~(DMA_SYNCING | DMA_ACTIVE);
463 if (adev->d->local_qlen) { /* Device has hidden buffers */
465 adev->d->local_qlen(dev)){
467 interruptible_sleep_on_timeout(&adev->out_sleeper,
474 adev->dmap_out->dma_mode = DMODE_NONE;
475 return adev->dmap_out->qlen;
480 struct audio_operations *adev = audio_devs[dev];
484 dmap = adev->dmap_out;
485 if (adev->open_mode & OPEN_WRITE)
486 adev->dmap_out->closing = 1;
488 if (adev->open_mode & OPEN_READ){
489 adev->dmap_in->closing = 1;
490 dmap = adev->dmap_in;
492 if (adev->open_mode & OPEN_WRITE)
493 if (!(adev->dmap_out->mapping_flags & DMA_MAP_MAPPED))
494 if (!signal_pending(current) && (adev->dmap_out->dma_mode == DMODE_OUTPUT))
496 if (adev->dmap_out->dma_mode == DMODE_OUTPUT)
497 memset(adev->dmap_out->raw_buf, adev->dmap_out->neutral_byte, adev->dmap_out->bytes_in_use);
501 adev->d->close(dev);
503 if (adev->open_mode & OPEN_WRITE)
504 close_dmap(adev, adev->dmap_out);
506 if (adev->open_mode == OPEN_READ ||
507 (adev->open_mode != OPEN_WRITE &&
508 (adev->flags & DMA_DUPLEX)))
509 close_dmap(adev, adev->dmap_in);
510 adev->open_mode = 0;
517 struct audio_operations *adev = audio_devs[dev];
520 if (!(adev->open_mode & OPEN_READ))
522 if (!(adev->enable_bits & PCM_ENABLE_INPUT))
534 if ((err = adev->d->prepare_for_input(dev,
542 local_start_dma(adev, dmap->raw_buf_phys, dmap->bytes_in_use, DMA_MODE_READ);
543 adev->d->start_input(dev, dmap->raw_buf_phys + dmap->qtail * dmap->fragment_size,
546 if (adev->d->trigger)
547 adev->d->trigger(dev, adev->enable_bits * adev->go);
554 struct audio_operations *adev = audio_devs[dev];
557 struct dma_buffparms *dmap = adev->dmap_in;
560 if (!(adev->open_mode & OPEN_READ))
565 if (adev->dmap_in->mapping_flags & DMA_MAP_MAPPED) {
571 if (!(adev->enable_bits & PCM_ENABLE_INPUT) || !adev->go) {
585 if ((go = adev->go))
589 timeout = interruptible_sleep_on_timeout(&adev->in_sleeper,
611 struct audio_operations *adev = audio_devs[dev];
612 struct dma_buffparms *dmap = adev->dmap_in;
690 struct audio_operations *adev;
696 if (!(adev = audio_devs[dev]))
698 if (adev->open_mode == 0)
700 if (adev->go)
703 adev->go = 1;
704 if (adev->d->trigger)
705 adev->d->trigger(dev,adev->enable_bits * adev->go);
711 struct audio_operations *adev = audio_devs[dev];
713 struct dma_buffparms *dmap = adev->dmap_out;
732 if (adev->d->local_qlen) {
733 tmp = adev->d->local_qlen(dev);
748 struct audio_operations *adev = audio_devs[dev];
750 struct dma_buffparms *dmap = adev->dmap_out;
756 if (!(adev->enable_bits & PCM_ENABLE_OUTPUT))
764 timeout = (adev->go && !(dmap->flags & DMA_NOTIMEOUT));
769 timeout_value = interruptible_sleep_on_timeout(&adev->out_sleeper,
783 struct audio_operations *adev = audio_devs[dev];
784 struct dma_buffparms *dmap = adev->dmap_out;
827 struct audio_operations *adev = audio_devs[dev];
830 struct dma_buffparms *dmap = adev->dmap_out;
861 struct audio_operations *adev = audio_devs[dev];
862 struct dma_buffparms *dmap = adev->dmap_out;
903 if (adev->d->postprocess_write)
904 adev->d->postprocess_write(dev);
916 struct audio_operations *adev = audio_devs[dev];
917 struct dma_buffparms *dmap = (dma_mode == DMA_MODE_WRITE) ? adev->dmap_out : adev->dmap_in;
921 printk("Device %d, chn=%s\n", dev, (dmap == adev->dmap_out) ? "out" : "in");
931 static int local_start_dma(struct audio_operations *adev, unsigned long physaddr, int count, int dma_mode)
933 struct dma_buffparms *dmap = (dma_mode == DMA_MODE_WRITE) ? adev->dmap_out : adev->dmap_in;
937 printk(KERN_ERR "Device %s, chn=%s\n", adev->name, (dmap == adev->dmap_out) ? "out" : "in");
951 struct audio_operations *adev = audio_devs[dev];
955 wake_up(&adev->out_sleeper);
956 wake_up(&adev->poll_sleeper);
961 struct audio_operations *adev = audio_devs[dev];
962 struct dma_buffparms *dmap = adev->dmap_out;
982 if (!(adev->flags & DMA_AUTOMODE))
1003 if (!(adev->flags & DMA_AUTOMODE))
1016 memset(adev->dmap_out->raw_buf, adev->dmap_out->neutral_byte,
1017 adev->dmap_out->buffsize);
1029 struct audio_operations *adev = audio_devs[dev];
1031 struct dma_buffparms *dmap = adev->dmap_out;
1064 struct audio_operations *adev = audio_devs[dev];
1065 struct dma_buffparms *dmap = adev->dmap_in;
1084 if (!(adev->flags & DMA_AUTOMODE)) {
1087 local_start_dma(adev, dmap->raw_buf_phys, dmap->bytes_in_use,DMA_MODE_READ);
1088 adev->d->start_input(dev, dmap->raw_buf_phys + dmap->qtail * dmap->fragment_size,
1090 if (adev->d->trigger)
1091 adev->d->trigger(dev, adev->enable_bits * adev->go);
1114 if (!(adev->flags & DMA_AUTOMODE) || (dmap->flags & DMA_NODMA)) {
1115 local_start_dma(adev, dmap->raw_buf_phys, dmap->bytes_in_use, DMA_MODE_READ);
1116 adev->d->start_input(dev, dmap->raw_buf_phys + dmap->qtail * dmap->fragment_size, dmap->fragment_size, 1);
1117 if (adev->d->trigger)
1118 adev->d->trigger(dev,adev->enable_bits * adev->go);
1123 wake_up(&adev->in_sleeper);
1124 wake_up(&adev->poll_sleeper);
1130 struct audio_operations *adev = audio_devs[dev];
1131 struct dma_buffparms *dmap = adev->dmap_in;
1164 struct audio_operations *adev = audio_devs[dev];
1169 if (adev && adev->dmap_out == NULL) {
1170 if (adev->d == NULL)
1173 if (adev->parent_dev) { /* Use DMA map of the parent dev */
1174 int parent = adev->parent_dev - 1;
1175 adev->dmap_out = audio_devs[parent]->dmap_out;
1176 adev->dmap_in = audio_devs[parent]->dmap_in;
1178 adev->dmap_out = adev->dmap_in = &adev->dmaps[0];
1179 adev->dmap_out->dma = dma1;
1180 if (adev->flags & DMA_DUPLEX) {
1181 adev->dmap_in = &adev->dmaps[1];
1182 adev->dmap_in->dma = dma2;
1187 if (adev->dmap_in->raw_buf == NULL)
1188 sound_alloc_dmap(adev->dmap_in);
1189 if (adev->dmap_out->raw_buf == NULL)
1190 sound_alloc_dmap(adev->dmap_out);
1198 struct audio_operations *adev = audio_devs[dev];
1199 struct dma_buffparms *dmap = adev->dmap_in;
1201 if (!(adev->open_mode & OPEN_READ))
1210 adev->enable_bits & PCM_ENABLE_INPUT &&
1211 !dmap->qlen && adev->go) {
1227 struct audio_operations *adev = audio_devs[dev];
1228 struct dma_buffparms *dmap = adev->dmap_out;
1230 if (!(adev->open_mode & OPEN_WRITE))
1248 struct audio_operations *adev = audio_devs[dev];
1249 poll_wait(file, &adev->poll_sleeper, wait);
1255 struct audio_operations *adev = audio_devs[dev];
1257 if (!adev)
1262 sound_free_dmap(adev->dmap_out);
1263 if (adev->flags & DMA_DUPLEX)
1264 sound_free_dmap(adev->dmap_in);