Lines Matching defs:stream

210 static bool copy_playback_data(struct ua101_stream *stream, struct urb *urb,
217 runtime = stream->substream->runtime;
218 frame_bytes = stream->frame_bytes;
219 source = runtime->dma_area + stream->buffer_pos * frame_bytes;
220 if (stream->buffer_pos + frames <= runtime->buffer_size) {
224 frames1 = runtime->buffer_size - stream->buffer_pos;
230 stream->buffer_pos += frames;
231 if (stream->buffer_pos >= runtime->buffer_size)
232 stream->buffer_pos -= runtime->buffer_size;
233 stream->period_pos += frames;
234 if (stream->period_pos >= runtime->period_size) {
235 stream->period_pos -= runtime->period_size;
314 static bool copy_capture_data(struct ua101_stream *stream, struct urb *urb,
321 runtime = stream->substream->runtime;
322 frame_bytes = stream->frame_bytes;
323 dest = runtime->dma_area + stream->buffer_pos * frame_bytes;
324 if (stream->buffer_pos + frames <= runtime->buffer_size) {
328 frames1 = runtime->buffer_size - stream->buffer_pos;
335 stream->buffer_pos += frames;
336 if (stream->buffer_pos >= runtime->buffer_size)
337 stream->buffer_pos -= runtime->buffer_size;
338 stream->period_pos += frames;
339 if (stream->period_pos >= runtime->period_size) {
340 stream->period_pos -= runtime->period_size;
349 struct ua101_stream *stream = &ua->capture;
363 stream->frame_bytes;
370 do_period_elapsed = copy_capture_data(stream, urb, frames);
395 * stream is not running. Throw away the oldest entry,
396 * so that the playback stream, when it starts, sees
409 snd_pcm_period_elapsed(stream->substream);
431 static int submit_stream_urbs(struct ua101 *ua, struct ua101_stream *stream)
435 for (i = 0; i < stream->queue_length; ++i) {
436 int err = usb_submit_urb(&stream->urbs[i]->urb, GFP_KERNEL);
446 static void kill_stream_urbs(struct ua101_stream *stream)
450 for (i = 0; i < stream->queue_length; ++i)
451 if (stream->urbs[i])
452 usb_kill_urb(&stream->urbs[i]->urb);
761 * The EHCI driver schedules the first packet of an iso stream at 10 ms
763 * Take the wait here so that the stream is known to be actually
844 struct ua101_stream *stream)
850 pos = stream->buffer_pos;
1020 static int alloc_stream_buffers(struct ua101 *ua, struct ua101_stream *stream)
1025 stream->queue_length = queue_length;
1026 stream->queue_length = max(stream->queue_length,
1028 stream->queue_length = min(stream->queue_length,
1037 remaining_packets = stream->queue_length;
1038 packets_per_page = PAGE_SIZE / stream->max_packet_bytes;
1039 for (i = 0; i < ARRAY_SIZE(stream->buffers); ++i) {
1041 size = packets * stream->max_packet_bytes;
1042 stream->buffers[i].addr =
1044 &stream->buffers[i].dma);
1045 if (!stream->buffers[i].addr)
1047 stream->buffers[i].size = size;
1059 static void free_stream_buffers(struct ua101 *ua, struct ua101_stream *stream)
1063 for (i = 0; i < ARRAY_SIZE(stream->buffers); ++i)
1065 stream->buffers[i].size,
1066 stream->buffers[i].addr,
1067 stream->buffers[i].dma);
1070 static int alloc_stream_urbs(struct ua101 *ua, struct ua101_stream *stream,
1073 unsigned max_packet_size = stream->max_packet_bytes;
1077 for (b = 0; b < ARRAY_SIZE(stream->buffers); ++b) {
1078 unsigned int size = stream->buffers[b].size;
1079 u8 *addr = stream->buffers[b].addr;
1080 dma_addr_t dma = stream->buffers[b].dma;
1083 if (u >= stream->queue_length)
1090 urb->urb.pipe = stream->usb_pipe;
1101 stream->urbs[u++] = urb;
1107 if (u == stream->queue_length)
1114 static void free_stream_urbs(struct ua101_stream *stream)
1118 for (i = 0; i < stream->queue_length; ++i) {
1119 kfree(stream->urbs[i]);
1120 stream->urbs[i] = NULL;