Lines Matching defs:pipe
779 this pipe. Note that _MS_ (mono-to-stereo) playback modes are not used by ALSA
1054 static int allocate_pipes(struct echoaudio *chip, struct audiopipe *pipe,
1078 pipe->index = pipe_index;
1079 pipe->interleave = interleave;
1080 pipe->state = PIPE_STATE_STOPPED;
1083 position for a pipe. The DSP is constantly updating this value as
1085 pipe->dma_counter = (__le32 *)&chip->comm_page->position[pipe_index];
1086 *pipe->dma_counter = 0;
1092 static int free_pipes(struct echoaudio *chip, struct audiopipe *pipe)
1097 if (snd_BUG_ON(!is_pipe_allocated(chip, pipe->index)))
1099 if (snd_BUG_ON(pipe->state != PIPE_STATE_STOPPED))
1102 for (channel_mask = i = 0; i < pipe->interleave; i++)
1103 channel_mask |= 1 << (pipe->index + i);
1116 static int sglist_init(struct echoaudio *chip, struct audiopipe *pipe)
1118 pipe->sglist_head = 0;
1119 memset(pipe->sgpage.area, 0, PAGE_SIZE);
1120 chip->comm_page->sglist_addr[pipe->index].addr =
1121 cpu_to_le32(pipe->sgpage.addr);
1127 static int sglist_add_mapping(struct echoaudio *chip, struct audiopipe *pipe,
1130 int head = pipe->sglist_head;
1131 struct sg_entry *list = (struct sg_entry *)pipe->sgpage.area;
1136 pipe->sglist_head++;
1146 static inline int sglist_add_irq(struct echoaudio *chip, struct audiopipe *pipe)
1148 return sglist_add_mapping(chip, pipe, 0, 0);
1153 static inline int sglist_wrap(struct echoaudio *chip, struct audiopipe *pipe)
1155 return sglist_add_mapping(chip, pipe, pipe->sgpage.addr, 0);