Lines Matching defs:stream

211 static bool copy_playback_data(struct ua101_stream *stream, struct urb *urb,
218 runtime = stream->substream->runtime;
219 frame_bytes = stream->frame_bytes;
220 source = runtime->dma_area + stream->buffer_pos * frame_bytes;
221 if (stream->buffer_pos + frames <= runtime->buffer_size) {
225 frames1 = runtime->buffer_size - stream->buffer_pos;
231 stream->buffer_pos += frames;
232 if (stream->buffer_pos >= runtime->buffer_size)
233 stream->buffer_pos -= runtime->buffer_size;
234 stream->period_pos += frames;
235 if (stream->period_pos >= runtime->period_size) {
236 stream->period_pos -= runtime->period_size;
315 static bool copy_capture_data(struct ua101_stream *stream, struct urb *urb,
322 runtime = stream->substream->runtime;
323 frame_bytes = stream->frame_bytes;
324 dest = runtime->dma_area + stream->buffer_pos * frame_bytes;
325 if (stream->buffer_pos + frames <= runtime->buffer_size) {
329 frames1 = runtime->buffer_size - stream->buffer_pos;
336 stream->buffer_pos += frames;
337 if (stream->buffer_pos >= runtime->buffer_size)
338 stream->buffer_pos -= runtime->buffer_size;
339 stream->period_pos += frames;
340 if (stream->period_pos >= runtime->period_size) {
341 stream->period_pos -= runtime->period_size;
350 struct ua101_stream *stream = &ua->capture;
364 stream->frame_bytes;
371 do_period_elapsed = copy_capture_data(stream, urb, frames);
396 * stream is not running. Throw away the oldest entry,
397 * so that the playback stream, when it starts, sees
410 snd_pcm_period_elapsed(stream->substream);
432 static int submit_stream_urbs(struct ua101 *ua, struct ua101_stream *stream)
436 for (i = 0; i < stream->queue_length; ++i) {
437 int err = usb_submit_urb(&stream->urbs[i]->urb, GFP_KERNEL);
447 static void kill_stream_urbs(struct ua101_stream *stream)
451 for (i = 0; i < stream->queue_length; ++i)
452 if (stream->urbs[i])
453 usb_kill_urb(&stream->urbs[i]->urb);
762 * The EHCI driver schedules the first packet of an iso stream at 10 ms
764 * Take the wait here so that the stream is known to be actually
845 struct ua101_stream *stream)
851 pos = stream->buffer_pos;
1021 static int alloc_stream_buffers(struct ua101 *ua, struct ua101_stream *stream)
1026 stream->queue_length = queue_length;
1027 stream->queue_length = max(stream->queue_length,
1029 stream->queue_length = min(stream->queue_length,
1038 remaining_packets = stream->queue_length;
1039 packets_per_page = PAGE_SIZE / stream->max_packet_bytes;
1040 for (i = 0; i < ARRAY_SIZE(stream->buffers); ++i) {
1042 size = packets * stream->max_packet_bytes;
1043 stream->buffers[i].addr =
1045 &stream->buffers[i].dma);
1046 if (!stream->buffers[i].addr)
1048 stream->buffers[i].size = size;
1060 static void free_stream_buffers(struct ua101 *ua, struct ua101_stream *stream)
1064 for (i = 0; i < ARRAY_SIZE(stream->buffers); ++i)
1066 stream->buffers[i].size,
1067 stream->buffers[i].addr,
1068 stream->buffers[i].dma);
1071 static int alloc_stream_urbs(struct ua101 *ua, struct ua101_stream *stream,
1074 unsigned max_packet_size = stream->max_packet_bytes;
1078 for (b = 0; b < ARRAY_SIZE(stream->buffers); ++b) {
1079 unsigned int size = stream->buffers[b].size;
1080 u8 *addr = stream->buffers[b].addr;
1081 dma_addr_t dma = stream->buffers[b].dma;
1084 if (u >= stream->queue_length)
1091 urb->urb.pipe = stream->usb_pipe;
1102 stream->urbs[u++] = urb;
1108 if (u == stream->queue_length)
1115 static void free_stream_urbs(struct ua101_stream *stream)
1119 for (i = 0; i < stream->queue_length; ++i) {
1120 kfree(stream->urbs[i]);
1121 stream->urbs[i] = NULL;