• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/sound/oss/

Lines Matching refs:adev

37 static int local_start_dma(struct audio_operations *adev, unsigned long physaddr, int count, int dma_mode);
184 static int open_dmap(struct audio_operations *adev, int mode, struct dma_buffparms *dmap)
197 if (dmap->dma >= 0 && sound_open_dma(dmap->dma, adev->name)) {
216 static void close_dmap(struct audio_operations *adev, struct dma_buffparms *dmap)
278 struct audio_operations *adev = audio_devs[dev];
283 if (!adev)
285 if (!(adev->flags & DMA_DUPLEX))
286 adev->dmap_in = adev->dmap_out;
287 check_driver(adev->d);
289 if ((retval = adev->d->open(dev, mode)) < 0)
291 dmap_out = adev->dmap_out;
292 dmap_in = adev->dmap_in;
294 adev->flags &= ~DMA_DUPLEX;
297 if ((retval = open_dmap(adev, mode, dmap_out)) < 0) {
298 adev->d->close(dev);
302 adev->enable_bits = mode;
304 if (mode == OPEN_READ || (mode != OPEN_WRITE && (adev->flags & DMA_DUPLEX))) {
305 if ((retval = open_dmap(adev, mode, dmap_in)) < 0) {
306 adev->d->close(dev);
308 close_dmap(adev, dmap_out);
312 adev->open_mode = mode;
313 adev->go = 1;
315 adev->d->set_bits(dev, 8);
316 adev->d->set_channels(dev, 1);
317 adev->d->set_speed(dev, DSP_DEFAULT_SPEED);
318 if (adev->dmap_out->dma_mode == DMODE_OUTPUT)
319 memset(adev->dmap_out->raw_buf, adev->dmap_out->neutral_byte,
320 adev->dmap_out->bytes_in_use);
335 struct audio_operations *adev = audio_devs[dev];
337 struct dma_buffparms *dmap = adev->dmap_out;
346 adev->dmap_out->flags |= DMA_SYNCING;
348 adev->dmap_out->underrun_count = 0;
349 if (!signal_pending(current) && adev->dmap_out->qlen &&
350 adev->dmap_out->underrun_count == 0){
352 interruptible_sleep_on_timeout(&adev->out_sleeper,
356 adev->dmap_out->flags &= ~(DMA_SYNCING | DMA_ACTIVE);
361 if (!(adev->flags & DMA_DUPLEX) || !adev->d->halt_output)
362 adev->d->halt_io(dev);
364 adev->d->halt_output(dev);
365 adev->dmap_out->flags &= ~DMA_STARTED;
373 reorganize_buffers(dev, adev->dmap_out, 0);
380 struct audio_operations *adev = audio_devs[dev];
382 struct dma_buffparms *dmap = adev->dmap_in;
385 if (!(adev->flags & DMA_DUPLEX) || !adev->d->halt_input)
386 adev->d->halt_io(dev);
388 adev->d->halt_input(dev);
389 adev->dmap_in->flags &= ~DMA_STARTED;
393 reorganize_buffers(dev, adev->dmap_in, 1);
399 struct audio_operations *adev = audio_devs[dev];
401 if (!((adev->enable_bits * adev->go) & PCM_ENABLE_OUTPUT))
405 if (!(dmap->flags & DMA_ACTIVE) || !(adev->flags & DMA_AUTOMODE) || (dmap->flags & DMA_NODMA)) {
408 if (adev->d->prepare_for_output(dev, dmap->fragment_size, dmap->nbufs))
411 local_start_dma(adev, dmap->raw_buf_phys, dmap->bytes_in_use,DMA_MODE_WRITE);
417 adev->d->output_block(dev, dmap->raw_buf_phys + dmap->qhead * dmap->fragment_size,
419 if (adev->d->trigger)
420 adev->d->trigger(dev,adev->enable_bits * adev->go);
427 struct audio_operations *adev = audio_devs[dev];
432 if (!adev->go && !(adev->enable_bits & PCM_ENABLE_OUTPUT))
435 if (adev->dmap_out->dma_mode == DMODE_OUTPUT) {
436 dmap = adev->dmap_out;
440 adev->dmap_out->flags |= DMA_SYNCING;
441 adev->dmap_out->underrun_count = 0;
442 while (!signal_pending(current) && n++ <= adev->dmap_out->nbufs &&
443 adev->dmap_out->qlen && adev->dmap_out->underrun_count == 0) {
446 t = interruptible_sleep_on_timeout(&adev->out_sleeper, t);
449 adev->dmap_out->flags &= ~DMA_SYNCING;
451 return adev->dmap_out->qlen;
454 adev->dmap_out->flags &= ~(DMA_SYNCING | DMA_ACTIVE);
462 if (adev->d->local_qlen) { /* Device has hidden buffers */
464 adev->d->local_qlen(dev)){
466 interruptible_sleep_on_timeout(&adev->out_sleeper,
473 adev->dmap_out->dma_mode = DMODE_NONE;
474 return adev->dmap_out->qlen;
479 struct audio_operations *adev = audio_devs[dev];
483 dmap = adev->dmap_out;
484 if (adev->open_mode & OPEN_WRITE)
485 adev->dmap_out->closing = 1;
487 if (adev->open_mode & OPEN_READ){
488 adev->dmap_in->closing = 1;
489 dmap = adev->dmap_in;
491 if (adev->open_mode & OPEN_WRITE)
492 if (!(adev->dmap_out->mapping_flags & DMA_MAP_MAPPED))
493 if (!signal_pending(current) && (adev->dmap_out->dma_mode == DMODE_OUTPUT))
495 if (adev->dmap_out->dma_mode == DMODE_OUTPUT)
496 memset(adev->dmap_out->raw_buf, adev->dmap_out->neutral_byte, adev->dmap_out->bytes_in_use);
500 adev->d->close(dev);
502 if (adev->open_mode & OPEN_WRITE)
503 close_dmap(adev, adev->dmap_out);
505 if (adev->open_mode == OPEN_READ ||
506 (adev->open_mode != OPEN_WRITE &&
507 (adev->flags & DMA_DUPLEX)))
508 close_dmap(adev, adev->dmap_in);
509 adev->open_mode = 0;
516 struct audio_operations *adev = audio_devs[dev];
519 if (!(adev->open_mode & OPEN_READ))
521 if (!(adev->enable_bits & PCM_ENABLE_INPUT))
533 if ((err = adev->d->prepare_for_input(dev,
541 local_start_dma(adev, dmap->raw_buf_phys, dmap->bytes_in_use, DMA_MODE_READ);
542 adev->d->start_input(dev, dmap->raw_buf_phys + dmap->qtail * dmap->fragment_size,
545 if (adev->d->trigger)
546 adev->d->trigger(dev, adev->enable_bits * adev->go);
553 struct audio_operations *adev = audio_devs[dev];
556 struct dma_buffparms *dmap = adev->dmap_in;
559 if (!(adev->open_mode & OPEN_READ))
564 if (adev->dmap_in->mapping_flags & DMA_MAP_MAPPED) {
570 if (!(adev->enable_bits & PCM_ENABLE_INPUT) || !adev->go) {
584 if ((go = adev->go))
588 timeout = interruptible_sleep_on_timeout(&adev->in_sleeper,
610 struct audio_operations *adev = audio_devs[dev];
611 struct dma_buffparms *dmap = adev->dmap_in;
689 struct audio_operations *adev;
695 if (!(adev = audio_devs[dev]))
697 if (adev->open_mode == 0)
699 if (adev->go)
702 adev->go = 1;
703 if (adev->d->trigger)
704 adev->d->trigger(dev,adev->enable_bits * adev->go);
710 struct audio_operations *adev = audio_devs[dev];
712 struct dma_buffparms *dmap = adev->dmap_out;
731 if (adev->d->local_qlen) {
732 tmp = adev->d->local_qlen(dev);
747 struct audio_operations *adev = audio_devs[dev];
749 struct dma_buffparms *dmap = adev->dmap_out;
755 if (!(adev->enable_bits & PCM_ENABLE_OUTPUT))
763 timeout = (adev->go && !(dmap->flags & DMA_NOTIMEOUT));
768 timeout_value = interruptible_sleep_on_timeout(&adev->out_sleeper,
782 struct audio_operations *adev = audio_devs[dev];
783 struct dma_buffparms *dmap = adev->dmap_out;
826 struct audio_operations *adev = audio_devs[dev];
829 struct dma_buffparms *dmap = adev->dmap_out;
860 struct audio_operations *adev = audio_devs[dev];
861 struct dma_buffparms *dmap = adev->dmap_out;
902 if (adev->d->postprocess_write)
903 adev->d->postprocess_write(dev);
915 struct audio_operations *adev = audio_devs[dev];
916 struct dma_buffparms *dmap = (dma_mode == DMA_MODE_WRITE) ? adev->dmap_out : adev->dmap_in;
920 printk("Device %d, chn=%s\n", dev, (dmap == adev->dmap_out) ? "out" : "in");
930 static int local_start_dma(struct audio_operations *adev, unsigned long physaddr, int count, int dma_mode)
932 struct dma_buffparms *dmap = (dma_mode == DMA_MODE_WRITE) ? adev->dmap_out : adev->dmap_in;
936 printk(KERN_ERR "Device %s, chn=%s\n", adev->name, (dmap == adev->dmap_out) ? "out" : "in");
950 struct audio_operations *adev = audio_devs[dev];
954 wake_up(&adev->out_sleeper);
955 wake_up(&adev->poll_sleeper);
960 struct audio_operations *adev = audio_devs[dev];
961 struct dma_buffparms *dmap = adev->dmap_out;
981 if (!(adev->flags & DMA_AUTOMODE))
1002 if (!(adev->flags & DMA_AUTOMODE))
1015 memset(adev->dmap_out->raw_buf, adev->dmap_out->neutral_byte,
1016 adev->dmap_out->buffsize);
1028 struct audio_operations *adev = audio_devs[dev];
1030 struct dma_buffparms *dmap = adev->dmap_out;
1063 struct audio_operations *adev = audio_devs[dev];
1064 struct dma_buffparms *dmap = adev->dmap_in;
1083 if (!(adev->flags & DMA_AUTOMODE)) {
1086 local_start_dma(adev, dmap->raw_buf_phys, dmap->bytes_in_use,DMA_MODE_READ);
1087 adev->d->start_input(dev, dmap->raw_buf_phys + dmap->qtail * dmap->fragment_size,
1089 if (adev->d->trigger)
1090 adev->d->trigger(dev, adev->enable_bits * adev->go);
1113 if (!(adev->flags & DMA_AUTOMODE) || (dmap->flags & DMA_NODMA)) {
1114 local_start_dma(adev, dmap->raw_buf_phys, dmap->bytes_in_use, DMA_MODE_READ);
1115 adev->d->start_input(dev, dmap->raw_buf_phys + dmap->qtail * dmap->fragment_size, dmap->fragment_size, 1);
1116 if (adev->d->trigger)
1117 adev->d->trigger(dev,adev->enable_bits * adev->go);
1122 wake_up(&adev->in_sleeper);
1123 wake_up(&adev->poll_sleeper);
1129 struct audio_operations *adev = audio_devs[dev];
1130 struct dma_buffparms *dmap = adev->dmap_in;
1163 struct audio_operations *adev = audio_devs[dev];
1168 if (adev && adev->dmap_out == NULL) {
1169 if (adev->d == NULL)
1172 if (adev->parent_dev) { /* Use DMA map of the parent dev */
1173 int parent = adev->parent_dev - 1;
1174 adev->dmap_out = audio_devs[parent]->dmap_out;
1175 adev->dmap_in = audio_devs[parent]->dmap_in;
1177 adev->dmap_out = adev->dmap_in = &adev->dmaps[0];
1178 adev->dmap_out->dma = dma1;
1179 if (adev->flags & DMA_DUPLEX) {
1180 adev->dmap_in = &adev->dmaps[1];
1181 adev->dmap_in->dma = dma2;
1186 if (adev->dmap_in->raw_buf == NULL)
1187 sound_alloc_dmap(adev->dmap_in);
1188 if (adev->dmap_out->raw_buf == NULL)
1189 sound_alloc_dmap(adev->dmap_out);
1197 struct audio_operations *adev = audio_devs[dev];
1198 struct dma_buffparms *dmap = adev->dmap_in;
1200 if (!(adev->open_mode & OPEN_READ))
1209 adev->enable_bits & PCM_ENABLE_INPUT &&
1210 !dmap->qlen && adev->go) {
1226 struct audio_operations *adev = audio_devs[dev];
1227 struct dma_buffparms *dmap = adev->dmap_out;
1229 if (!(adev->open_mode & OPEN_WRITE))
1247 struct audio_operations *adev = audio_devs[dev];
1248 poll_wait(file, &adev->poll_sleeper, wait);
1254 struct audio_operations *adev = audio_devs[dev];
1256 if (!adev)
1261 sound_free_dmap(adev->dmap_out);
1262 if (adev->flags & DMA_DUPLEX)
1263 sound_free_dmap(adev->dmap_in);