tag | line | file | source code |
dmap | 149 | drivers/sound/dev_table.h | struct dma_buffparms *dmap; |
dmap | 56 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 62 | drivers/sound/dmabuf.c | if (dmap->fragment_size == 0) |
dmap | 95 | drivers/sound/dmabuf.c | if (dmap->subdivision == 0) /* Not already set */ |
dmap | 96 | drivers/sound/dmabuf.c | dmap->subdivision = 1; /* Init to default value */ |
dmap | 98 | drivers/sound/dmabuf.c | bsz /= dmap->subdivision; |
dmap | 106 | drivers/sound/dmabuf.c | dmap->fragment_size = bsz; |
dmap | 114 | drivers/sound/dmabuf.c | if (dmap->fragment_size > audio_devs[dev]->buffsize) |
dmap | 115 | drivers/sound/dmabuf.c | dmap->fragment_size = audio_devs[dev]->buffsize; |
dmap | 116 | drivers/sound/dmabuf.c | bsz = dmap->fragment_size; |
dmap | 124 | drivers/sound/dmabuf.c | for (i = 0; i < dmap->raw_count && |
dmap | 125 | drivers/sound/dmabuf.c | n < dmap->max_fragments && |
dmap | 131 | drivers/sound/dmabuf.c | n < dmap->max_fragments && |
dmap | 134 | drivers/sound/dmabuf.c | dmap->buf[n] = dmap->raw_buf[i] + p; |
dmap | 135 | drivers/sound/dmabuf.c | dmap->buf_phys[n] = dmap->raw_buf_phys[i] + p; |
dmap | 141 | drivers/sound/dmabuf.c | dmap->nbufs = n; |
dmap | 142 | drivers/sound/dmabuf.c | dmap->bytes_in_use = n * bsz; |
dmap | 144 | drivers/sound/dmabuf.c | for (i = 0; i < dmap->nbufs; i++) |
dmap | 146 | drivers/sound/dmabuf.c | dmap->counts[i] = 0; |
dmap | 149 | drivers/sound/dmabuf.c | dmap->flags |= DMA_ALLOC_DONE; |
dmap | 155 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap = &dmaps[dev]; |
dmap | 159 | drivers/sound/dmabuf.c | dmap->flags = DMA_BUSY; /* Other flags off */ |
dmap | 160 | drivers/sound/dmabuf.c | dmap->qlen = dmap->qhead = dmap->qtail = 0; |
dmap | 162 | drivers/sound/dmabuf.c | dmap->dma_mode = DMODE_NONE; |
dmap | 169 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = NULL; |
dmap | 183 | drivers/sound/dmabuf.c | dmap = audio_devs[dev]->dmap = &dmaps[dev]; |
dmap | 185 | drivers/sound/dmabuf.c | if (dmap->flags & DMA_BUSY) |
dmap | 189 | drivers/sound/dmabuf.c | dmap->raw_buf[0] = NULL; |
dmap | 193 | drivers/sound/dmabuf.c | if (dmap->raw_buf[0] == NULL) |
dmap | 199 | drivers/sound/dmabuf.c | dmap->open_mode = mode; |
dmap | 200 | drivers/sound/dmabuf.c | dmap->subdivision = dmap->underrun_count = 0; |
dmap | 201 | drivers/sound/dmabuf.c | dmap->fragment_size = 0; |
dmap | 202 | drivers/sound/dmabuf.c | dmap->max_fragments = 65536; /* Just a large value */ |
dmap | 223 | drivers/sound/dmabuf.c | if ((retval = audio_devs[dev]->open (dev, audio_devs[dev]->dmap->open_mode)) < 0) |
dmap | 236 | drivers/sound/dmabuf.c | if (audio_devs[dev]->dmap->dma_mode == DMODE_OUTPUT) |
dmap | 241 | drivers/sound/dmabuf.c | && audio_devs[dev]->dmap->qlen) |
dmap | 247 | drivers/sound/dmabuf.c | return audio_devs[dev]->dmap->qlen; |
dmap | 268 | drivers/sound/dmabuf.c | return audio_devs[dev]->dmap->qlen; |
dmap | 277 | drivers/sound/dmabuf.c | && (audio_devs[dev]->dmap->dma_mode == DMODE_OUTPUT)) |
dmap | 291 | drivers/sound/dmabuf.c | audio_devs[dev]->dmap->dma_mode = DMODE_NONE; |
dmap | 292 | drivers/sound/dmabuf.c | audio_devs[dev]->dmap->flags &= ~DMA_BUSY; |
dmap | 303 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 306 | drivers/sound/dmabuf.c | if (!dmap->qlen) |
dmap | 308 | drivers/sound/dmabuf.c | if (dmap->flags & DMA_RESTART) |
dmap | 311 | drivers/sound/dmabuf.c | dmap->flags &= ~DMA_RESTART; |
dmap | 314 | drivers/sound/dmabuf.c | if (dmap->dma_mode == DMODE_OUTPUT) /* Direction change */ |
dmap | 318 | drivers/sound/dmabuf.c | dmap->dma_mode = DMODE_NONE; |
dmap | 321 | drivers/sound/dmabuf.c | if (!(dmap->flags & DMA_ALLOC_DONE)) |
dmap | 324 | drivers/sound/dmabuf.c | if (!dmap->dma_mode) |
dmap | 329 | drivers/sound/dmabuf.c | dmap->fragment_size, dmap->nbufs)) < 0) |
dmap | 334 | drivers/sound/dmabuf.c | dmap->dma_mode = DMODE_INPUT; |
dmap | 337 | drivers/sound/dmabuf.c | if (!(dmap->flags & DMA_ACTIVE)) |
dmap | 339 | drivers/sound/dmabuf.c | audio_devs[dev]->start_input (dev, dmap->buf_phys[dmap->qtail], |
dmap | 340 | drivers/sound/dmabuf.c | dmap->fragment_size, 0, |
dmap | 342 | drivers/sound/dmabuf.c | !(dmap->flags & DMA_STARTED)); |
dmap | 343 | drivers/sound/dmabuf.c | dmap->flags |= DMA_ACTIVE | DMA_STARTED; |
dmap | 366 | drivers/sound/dmabuf.c | if (!dmap->qlen) |
dmap | 369 | drivers/sound/dmabuf.c | *buf = &dmap->buf[dmap->qhead][dmap->counts[dmap->qhead]]; |
dmap | 370 | drivers/sound/dmabuf.c | *len = dmap->fragment_size - dmap->counts[dmap->qhead]; |
dmap | 372 | drivers/sound/dmabuf.c | return dmap->qhead; |
dmap | 378 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 380 | drivers/sound/dmabuf.c | int p = dmap->counts[dmap->qhead] + c; |
dmap | 382 | drivers/sound/dmabuf.c | if (p >= dmap->fragment_size) |
dmap | 384 | drivers/sound/dmabuf.c | dmap->counts[dmap->qhead] = 0; |
dmap | 385 | drivers/sound/dmabuf.c | if (dmap->qlen <= 0 || dmap->qlen > dmap->nbufs) |
dmap | 387 | drivers/sound/dmabuf.c | dev, dmap->qlen, dmap->nbufs); |
dmap | 388 | drivers/sound/dmabuf.c | dmap->qlen--; |
dmap | 389 | drivers/sound/dmabuf.c | dmap->qhead = (dmap->qhead + 1) % dmap->nbufs; |
dmap | 392 | drivers/sound/dmabuf.c | dmap->counts[dmap->qhead] = p; |
dmap | 400 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 416 | drivers/sound/dmabuf.c | if (!(dmap->flags & DMA_ALLOC_DONE)) |
dmap | 419 | drivers/sound/dmabuf.c | return IOCTL_OUT (arg, dmap->fragment_size); |
dmap | 428 | drivers/sound/dmabuf.c | fact = dmap->subdivision; |
dmap | 434 | drivers/sound/dmabuf.c | if (dmap->subdivision != 0 || |
dmap | 435 | drivers/sound/dmabuf.c | dmap->fragment_size) /* Loo late to change */ |
dmap | 444 | drivers/sound/dmabuf.c | dmap->subdivision = fact; |
dmap | 457 | drivers/sound/dmabuf.c | if (dmap->subdivision != 0 || |
dmap | 458 | drivers/sound/dmabuf.c | dmap->fragment_size) /* Loo late to change */ |
dmap | 473 | drivers/sound/dmabuf.c | dmap->fragment_size = (1 << bytes); |
dmap | 474 | drivers/sound/dmabuf.c | dmap->max_fragments = count; |
dmap | 476 | drivers/sound/dmabuf.c | if (dmap->fragment_size > audio_devs[dev]->buffsize) |
dmap | 477 | drivers/sound/dmabuf.c | dmap->fragment_size = audio_devs[dev]->buffsize; |
dmap | 479 | drivers/sound/dmabuf.c | if (dmap->fragment_size == audio_devs[dev]->buffsize && |
dmap | 481 | drivers/sound/dmabuf.c | dmap->fragment_size /= 2; /* Needs at least 2 buffers */ |
dmap | 483 | drivers/sound/dmabuf.c | dmap->subdivision = 1; /* Disable SNDCTL_DSP_SUBDIVIDE */ |
dmap | 496 | drivers/sound/dmabuf.c | if (!(dmap->flags & DMA_ALLOC_DONE)) |
dmap | 500 | drivers/sound/dmabuf.c | info->fragments = dmap->qlen; |
dmap | 507 | drivers/sound/dmabuf.c | info->fragments = dmap->nbufs - dmap->qlen; |
dmap | 523 | drivers/sound/dmabuf.c | else if (info->fragments > dmap->nbufs) |
dmap | 524 | drivers/sound/dmabuf.c | info->fragments = dmap->nbufs; |
dmap | 526 | drivers/sound/dmabuf.c | info->fragsize = dmap->fragment_size; |
dmap | 527 | drivers/sound/dmabuf.c | info->bytes = info->fragments * dmap->fragment_size; |
dmap | 529 | drivers/sound/dmabuf.c | if (cmd == SNDCTL_DSP_GETISPACE && dmap->qlen) |
dmap | 530 | drivers/sound/dmabuf.c | info->bytes -= dmap->counts[dmap->qhead]; |
dmap | 544 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 546 | drivers/sound/dmabuf.c | if (dmap->qlen >= dmap->nbufs) /* No space at all */ |
dmap | 554 | drivers/sound/dmabuf.c | max = dmap->max_fragments; |
dmap | 555 | drivers/sound/dmabuf.c | len = dmap->qlen; |
dmap | 577 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 579 | drivers/sound/dmabuf.c | if (dmap->dma_mode == DMODE_INPUT) /* Direction change */ |
dmap | 582 | drivers/sound/dmabuf.c | dmap->dma_mode = DMODE_NONE; |
dmap | 584 | drivers/sound/dmabuf.c | else if (dmap->flags & DMA_RESTART) /* Restart buffering */ |
dmap | 590 | drivers/sound/dmabuf.c | dmap->flags &= ~DMA_RESTART; |
dmap | 592 | drivers/sound/dmabuf.c | if (!(dmap->flags & DMA_ALLOC_DONE)) |
dmap | 595 | drivers/sound/dmabuf.c | if (!dmap->dma_mode) |
dmap | 599 | drivers/sound/dmabuf.c | dmap->dma_mode = DMODE_OUTPUT; |
dmap | 601 | drivers/sound/dmabuf.c | dmap->fragment_size, dmap->nbufs)) < 0) |
dmap | 639 | drivers/sound/dmabuf.c | *buf = dmap->buf[dmap->qtail]; |
dmap | 640 | drivers/sound/dmabuf.c | *size = dmap->fragment_size; |
dmap | 641 | drivers/sound/dmabuf.c | dmap->counts[dmap->qtail] = 0; |
dmap | 643 | drivers/sound/dmabuf.c | return dmap->qtail; |
dmap | 649 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 651 | drivers/sound/dmabuf.c | if (buff_no != dmap->qtail) |
dmap | 652 | drivers/sound/dmabuf.c | printk ("Sound warning: DMA buffers out of sync %d != %d\n", buff_no, dmap->qtail); |
dmap | 654 | drivers/sound/dmabuf.c | dmap->qlen++; |
dmap | 655 | drivers/sound/dmabuf.c | if (dmap->qlen <= 0 || dmap->qlen > dmap->nbufs) |
dmap | 657 | drivers/sound/dmabuf.c | dev, dmap->qlen, dmap->nbufs); |
dmap | 659 | drivers/sound/dmabuf.c | dmap->counts[dmap->qtail] = l; |
dmap | 661 | drivers/sound/dmabuf.c | if ((l != dmap->fragment_size) && |
dmap | 664 | drivers/sound/dmabuf.c | dmap->flags |= DMA_RESTART; |
dmap | 666 | drivers/sound/dmabuf.c | dmap->flags &= ~DMA_RESTART; |
dmap | 668 | drivers/sound/dmabuf.c | dmap->qtail = (dmap->qtail + 1) % dmap->nbufs; |
dmap | 670 | drivers/sound/dmabuf.c | if (!(dmap->flags & DMA_ACTIVE)) |
dmap | 672 | drivers/sound/dmabuf.c | dmap->flags |= DMA_ACTIVE; |
dmap | 673 | drivers/sound/dmabuf.c | audio_devs[dev]->output_block (dev, dmap->buf_phys[dmap->qhead], |
dmap | 674 | drivers/sound/dmabuf.c | dmap->counts[dmap->qhead], 0, |
dmap | 676 | drivers/sound/dmabuf.c | !(dmap->flags & DMA_STARTED)); |
dmap | 677 | drivers/sound/dmabuf.c | dmap->flags |= DMA_STARTED; |
dmap | 687 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 709 | drivers/sound/dmabuf.c | set_dma_addr (chan, dmap->raw_buf_phys[0]); |
dmap | 710 | drivers/sound/dmabuf.c | set_dma_count (chan, dmap->bytes_in_use); |
dmap | 719 | drivers/sound/dmabuf.c | dmap->raw_buf_phys[0], |
dmap | 720 | drivers/sound/dmabuf.c | dmap->bytes_in_use, |
dmap | 733 | drivers/sound/dmabuf.c | snd_dma_prog (chan, dmap->raw_buf_phys[0], dmap->bytes_in_use, |
dmap | 742 | drivers/sound/dmabuf.c | dmap->raw_buf_phys[0], dmap->bytes_in_use - 1); |
dmap | 806 | drivers/sound/dmabuf.c | audio_devs[dev]->dmap = &dmaps[dev]; |
dmap | 824 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 832 | drivers/sound/dmabuf.c | if (dmap->qlen <= 0 || dmap->qlen > dmap->nbufs) |
dmap | 835 | drivers/sound/dmabuf.c | dev, dmap->qlen, dmap->nbufs); |
dmap | 839 | drivers/sound/dmabuf.c | dmap->qlen--; |
dmap | 840 | drivers/sound/dmabuf.c | dmap->qhead = (dmap->qhead + 1) % dmap->nbufs; |
dmap | 841 | drivers/sound/dmabuf.c | dmap->flags &= ~DMA_ACTIVE; |
dmap | 843 | drivers/sound/dmabuf.c | if (dmap->qlen) |
dmap | 845 | drivers/sound/dmabuf.c | audio_devs[dev]->output_block (dev, dmap->buf_phys[dmap->qhead], |
dmap | 846 | drivers/sound/dmabuf.c | dmap->counts[dmap->qhead], 1, |
dmap | 848 | drivers/sound/dmabuf.c | dmap->flags |= DMA_ACTIVE; |
dmap | 852 | drivers/sound/dmabuf.c | dmap->underrun_count++; |
dmap | 856 | drivers/sound/dmabuf.c | dmap->flags |= DMA_RESTART; |
dmap | 858 | drivers/sound/dmabuf.c | dmap->flags &= ~DMA_RESTART; |
dmap | 874 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 880 | drivers/sound/dmabuf.c | if (dmap->qlen == (dmap->nbufs - 1)) |
dmap | 883 | drivers/sound/dmabuf.c | dmap->underrun_count++; |
dmap | 885 | drivers/sound/dmabuf.c | dmap->flags &= ~DMA_ACTIVE; |
dmap | 887 | drivers/sound/dmabuf.c | dmap->flags |= DMA_RESTART; |
dmap | 889 | drivers/sound/dmabuf.c | dmap->flags &= ~DMA_RESTART; |
dmap | 893 | drivers/sound/dmabuf.c | dmap->qlen++; |
dmap | 894 | drivers/sound/dmabuf.c | if (dmap->qlen <= 0 || dmap->qlen > dmap->nbufs) |
dmap | 896 | drivers/sound/dmabuf.c | dev, dmap->qlen, dmap->nbufs); |
dmap | 897 | drivers/sound/dmabuf.c | dmap->qtail = (dmap->qtail + 1) % dmap->nbufs; |
dmap | 899 | drivers/sound/dmabuf.c | audio_devs[dev]->start_input (dev, dmap->buf_phys[dmap->qtail], |
dmap | 900 | drivers/sound/dmabuf.c | dmap->fragment_size, 1, |
dmap | 902 | drivers/sound/dmabuf.c | dmap->flags |= DMA_ACTIVE; |
dmap | 958 | drivers/sound/dmabuf.c | struct dma_buffparms *dmap = audio_devs[dev]->dmap; |
dmap | 965 | drivers/sound/dmabuf.c | if (dmap->dma_mode != DMODE_INPUT) |
dmap | 968 | drivers/sound/dmabuf.c | if (!dmap->qlen) |
dmap | 980 | drivers/sound/dmabuf.c | if (dmap->dma_mode == DMODE_INPUT) |
dmap | 985 | drivers/sound/dmabuf.c | if (dmap->dma_mode == DMODE_NONE) |
dmap | 1684 | drivers/sound/gus_wave.c | COPY_FROM_USER (audio_devs[gus_devnum]->dmap->raw_buf[0], |
dmap | 1692 | drivers/sound/gus_wave.c | audio_devs[gus_devnum]->dmap->raw_buf_phys[0], |
dmap | 441 | drivers/sound/soundcard.c | struct dma_buffparms *dmap; |
dmap | 446 | drivers/sound/soundcard.c | dmap = audio_devs[dev]->dmap; |
dmap | 466 | drivers/sound/soundcard.c | for (dmap->raw_count = 0; dmap->raw_count < audio_devs[dev]->buffcount; |
dmap | 467 | drivers/sound/soundcard.c | dmap->raw_count++) |
dmap | 527 | drivers/sound/soundcard.c | dmap->raw_buf[dmap->raw_count] = start_addr; |
dmap | 528 | drivers/sound/soundcard.c | dmap->raw_buf_phys[dmap->raw_count] = (unsigned long) start_addr; |
dmap | 553 | drivers/sound/soundcard.c | if (audio_devs[dev]->dmap->raw_buf[i]) |
dmap | 557 | drivers/sound/soundcard.c | (long) (audio_devs[dev]->dmap->raw_buf[i])); |
dmap | 558 | drivers/sound/soundcard.c | kfree (audio_devs[dev]->dmap->raw_buf[i]); |
dmap | 571 | drivers/sound/soundcard.c | struct dma_buffparms *dmap; |
dmap | 583 | drivers/sound/soundcard.c | dmap = audio_devs[dev]->dmap; |
dmap | 603 | drivers/sound/soundcard.c | for (dmap->raw_count = 0; dmap->raw_count < audio_devs[dev]->buffcount; dmap->raw_count++) |
dmap | 612 | drivers/sound/soundcard.c | dmap->raw_buf[dmap->raw_count] = (char *) start_addr; |
dmap | 613 | drivers/sound/soundcard.c | dmap->raw_buf_phys[dmap->raw_count] = start_addr; |
dmap | 479 | drivers/sound/sscape.c | memcpy (audio_devs[devc->my_audiodev]->dmap->raw_buf[0], block, size); |
dmap | 484 | drivers/sound/sscape.c | audio_devs[devc->my_audiodev]->dmap->raw_buf_phys[0], |