Lines Matching refs:pos

459 buffer_mux_write(uint32_t *dma, uint32_t *pcm, unsigned int pos,
464 for (; pos < pos_end; ++pos) {
466 dma[slot * HDSP_CHANBUF_SAMPLES + pos] =
467 pcm[pos * channels + slot];
474 unsigned int pos, unsigned int samples, unsigned int channels)
492 buffer_mux_write(dma, pcm, pos, pos + samples, 1, channels);
494 buffer_mux_write(dma, pcm, pos, pos + samples, 2, channels);
496 buffer_mux_write(dma, pcm, pos, pos + samples, 4, channels);
498 buffer_mux_write(dma, pcm, pos, pos + samples, 8, channels);
500 buffer_mux_write(dma, pcm, pos, pos + samples, width, channels);
504 buffer_demux_read(uint32_t *dma, uint32_t *pcm, unsigned int pos,
509 for (; pos < pos_end; ++pos) {
511 pcm[pos * channels + slot] =
512 dma[slot * HDSP_CHANBUF_SAMPLES + pos];
519 unsigned int pos, unsigned int samples, unsigned int channels)
537 buffer_demux_read(dma, pcm, pos, pos + samples, 1, channels);
539 buffer_demux_read(dma, pcm, pos, pos + samples, 2, channels);
541 buffer_demux_read(dma, pcm, pos, pos + samples, 4, channels);
543 buffer_demux_read(dma, pcm, pos, pos + samples, 8, channels);
545 buffer_demux_read(dma, pcm, pos, pos + samples, width, channels);
557 unsigned int pos, length, remainder, offset, buffer_size;
571 pos = sndbuf_getreadyptr(ch->buffer) / channels;
577 offset = (ch->position + buffer_size) - pos;
580 pos = (pos + offset) % buffer_size;
585 pos = sndbuf_getfreeptr(ch->buffer) / channels;
591 length = (dma_pos + buffer_size) - pos;
596 pos /= 4;
602 if (pos + length > buffer_size)
603 remainder = (pos + length) - buffer_size;
612 buffer_mux_port(sc->pbuf, ch->data, row, slots, pos,
617 buffer_demux_port(sc->rbuf, ch->data, row, slots, pos,
627 ch->position = ((pos + length) * 4) % buffer_size;
779 uint32_t ret, pos;
789 pos = ret & HDSP_BUF_POSITION_MASK;
790 pos %= (2 * sc->period * sizeof(uint32_t)); /* Double buffer. */
791 pos *= AFMT_CHANNEL(ch->format); /* Hardbuf with multiple channels. */
793 return (pos);