Lines Matching full:stream

53 	struct snd_compr_stream stream;  member
59 static void snd_compr_task_free_all(struct snd_compr_stream *stream);
61 static inline void snd_compr_task_free_all(struct snd_compr_stream *stream) { } in snd_compr_task_free_all() argument
65 * a note on stream states used:
67 * SNDRV_PCM_STATE_OPEN: When stream has been opened.
68 * SNDRV_PCM_STATE_SETUP: When stream has been initialized. This is done by
71 * SNDRV_PCM_STATE_PREPARED: When a stream has been written to (for
72 * playback only). User after setting up stream writes the data buffer
73 * before starting the stream.
74 * SNDRV_PCM_STATE_RUNNING: When stream has been started and is
76 * SNDRV_PCM_STATE_DRAINING: When stream is draining current data. This is done
78 * SNDRV_PCM_STATE_PAUSED: When stream is paused. This is done by calling
123 INIT_DELAYED_WORK(&data->stream.error_work, error_delayed_work); in snd_compr_open()
125 data->stream.ops = compr->ops; in snd_compr_open()
126 data->stream.direction = dirn; in snd_compr_open()
127 data->stream.private_data = compr->private_data; in snd_compr_open()
128 data->stream.device = compr; in snd_compr_open()
140 data->stream.runtime = runtime; in snd_compr_open()
143 ret = compr->ops->open(&data->stream); in snd_compr_open()
155 struct snd_compr_runtime *runtime = data->stream.runtime; in snd_compr_free()
157 cancel_delayed_work_sync(&data->stream.error_work); in snd_compr_free()
163 data->stream.ops->trigger(&data->stream, SNDRV_PCM_TRIGGER_STOP); in snd_compr_free()
169 snd_compr_task_free_all(&data->stream); in snd_compr_free()
171 data->stream.ops->free(&data->stream); in snd_compr_free()
172 if (!data->stream.runtime->dma_buffer_p) in snd_compr_free()
173 kfree(data->stream.runtime->buffer); in snd_compr_free()
174 kfree(data->stream.runtime); in snd_compr_free()
179 static int snd_compr_update_tstamp(struct snd_compr_stream *stream, in snd_compr_update_tstamp() argument
182 if (!stream->ops->pointer) in snd_compr_update_tstamp()
184 stream->ops->pointer(stream, tstamp); in snd_compr_update_tstamp()
187 if (stream->direction == SND_COMPRESS_PLAYBACK) in snd_compr_update_tstamp()
188 stream->runtime->total_bytes_transferred = tstamp->copied_total; in snd_compr_update_tstamp()
190 stream->runtime->total_bytes_available = tstamp->copied_total; in snd_compr_update_tstamp()
194 static size_t snd_compr_calc_avail(struct snd_compr_stream *stream, in snd_compr_calc_avail() argument
198 snd_compr_update_tstamp(stream, &avail->tstamp); in snd_compr_calc_avail()
201 if (stream->runtime->total_bytes_available == 0 && in snd_compr_calc_avail()
202 stream->runtime->state == SNDRV_PCM_STATE_SETUP && in snd_compr_calc_avail()
203 stream->direction == SND_COMPRESS_PLAYBACK) { in snd_compr_calc_avail()
205 return stream->runtime->buffer_size; in snd_compr_calc_avail()
208 stream->runtime->total_bytes_available, in snd_compr_calc_avail()
209 stream->runtime->total_bytes_transferred); in snd_compr_calc_avail()
210 if (stream->runtime->total_bytes_available == in snd_compr_calc_avail()
211 stream->runtime->total_bytes_transferred) { in snd_compr_calc_avail()
212 if (stream->direction == SND_COMPRESS_PLAYBACK) { in snd_compr_calc_avail()
214 return stream->runtime->buffer_size; in snd_compr_calc_avail()
221 avail->avail = stream->runtime->total_bytes_available - in snd_compr_calc_avail()
222 stream->runtime->total_bytes_transferred; in snd_compr_calc_avail()
223 if (stream->direction == SND_COMPRESS_PLAYBACK) in snd_compr_calc_avail()
224 avail->avail = stream->runtime->buffer_size - avail->avail; in snd_compr_calc_avail()
230 static inline size_t snd_compr_get_avail(struct snd_compr_stream *stream) in snd_compr_get_avail() argument
234 return snd_compr_calc_avail(stream, &avail); in snd_compr_get_avail()
238 snd_compr_ioctl_avail(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_ioctl_avail() argument
243 if (stream->direction == SND_COMPRESS_ACCEL) in snd_compr_ioctl_avail()
246 avail = snd_compr_calc_avail(stream, &ioctl_avail); in snd_compr_ioctl_avail()
249 switch (stream->runtime->state) { in snd_compr_ioctl_avail()
264 static int snd_compr_write_data(struct snd_compr_stream *stream, in snd_compr_write_data() argument
269 struct snd_compr_runtime *runtime = stream->runtime; in snd_compr_write_data()
290 if (stream->ops->ack) in snd_compr_write_data()
291 stream->ops->ack(stream, count); in snd_compr_write_data()
299 struct snd_compr_stream *stream; in snd_compr_write() local
306 stream = &data->stream; in snd_compr_write()
307 if (stream->direction == SND_COMPRESS_ACCEL) in snd_compr_write()
309 guard(mutex)(&stream->device->lock); in snd_compr_write()
310 /* write is allowed when stream is running or has been setup */ in snd_compr_write()
311 switch (stream->runtime->state) { in snd_compr_write()
320 avail = snd_compr_get_avail(stream); in snd_compr_write()
326 if (stream->ops->copy) { in snd_compr_write()
328 retval = stream->ops->copy(stream, cbuf, avail); in snd_compr_write()
330 retval = snd_compr_write_data(stream, buf, avail); in snd_compr_write()
333 stream->runtime->total_bytes_available += retval; in snd_compr_write()
335 /* while initiating the stream, write should be called before START in snd_compr_write()
337 if (stream->runtime->state == SNDRV_PCM_STATE_SETUP) { in snd_compr_write()
338 stream->runtime->state = SNDRV_PCM_STATE_PREPARED; in snd_compr_write()
339 pr_debug("stream prepared, Houston we are good to go\n"); in snd_compr_write()
350 struct snd_compr_stream *stream; in snd_compr_read() local
357 stream = &data->stream; in snd_compr_read()
358 if (stream->direction == SND_COMPRESS_ACCEL) in snd_compr_read()
360 guard(mutex)(&stream->device->lock); in snd_compr_read()
362 /* read is allowed when stream is running, paused, draining and setup in snd_compr_read()
366 switch (stream->runtime->state) { in snd_compr_read()
376 avail = snd_compr_get_avail(stream); in snd_compr_read()
382 if (stream->ops->copy) in snd_compr_read()
383 retval = stream->ops->copy(stream, buf, avail); in snd_compr_read()
387 stream->runtime->total_bytes_transferred += retval; in snd_compr_read()
397 static __poll_t snd_compr_get_poll(struct snd_compr_stream *stream) in snd_compr_get_poll() argument
399 if (stream->direction == SND_COMPRESS_PLAYBACK) in snd_compr_get_poll()
408 struct snd_compr_stream *stream; in snd_compr_poll() local
416 stream = &data->stream; in snd_compr_poll()
417 runtime = stream->runtime; in snd_compr_poll()
419 guard(mutex)(&stream->device->lock); in snd_compr_poll()
424 return snd_compr_get_poll(stream) | EPOLLERR; in snd_compr_poll()
432 if (stream->direction == SND_COMPRESS_ACCEL) { in snd_compr_poll()
445 avail = snd_compr_get_avail(stream); in snd_compr_poll()
450 /* stream has been woken up after drain is complete in snd_compr_poll()
451 * draining done so set stream state to stopped in snd_compr_poll()
453 retval = snd_compr_get_poll(stream); in snd_compr_poll()
460 retval = snd_compr_get_poll(stream); in snd_compr_poll()
463 return snd_compr_get_poll(stream) | EPOLLERR; in snd_compr_poll()
470 snd_compr_get_caps(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_get_caps() argument
475 if (!stream->ops->get_caps) in snd_compr_get_caps()
479 retval = stream->ops->get_caps(stream, &caps); in snd_compr_get_caps()
490 snd_compr_get_codec_caps(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_get_codec_caps() argument
495 if (!stream->ops->get_codec_caps) in snd_compr_get_codec_caps()
502 retval = stream->ops->get_codec_caps(stream, caps); in snd_compr_get_codec_caps()
511 int snd_compr_malloc_pages(struct snd_compr_stream *stream, size_t size) in snd_compr_malloc_pages() argument
516 if (snd_BUG_ON(!(stream) || !(stream)->runtime)) in snd_compr_malloc_pages()
521 dmab->dev = stream->dma_buffer.dev; in snd_compr_malloc_pages()
528 snd_compr_set_runtime_buffer(stream, dmab); in snd_compr_malloc_pages()
529 stream->runtime->dma_bytes = size; in snd_compr_malloc_pages()
534 int snd_compr_free_pages(struct snd_compr_stream *stream) in snd_compr_free_pages() argument
538 if (snd_BUG_ON(!(stream) || !(stream)->runtime)) in snd_compr_free_pages()
540 runtime = stream->runtime; in snd_compr_free_pages()
543 if (runtime->dma_buffer_p != &stream->dma_buffer) { in snd_compr_free_pages()
549 snd_compr_set_runtime_buffer(stream, NULL); in snd_compr_free_pages()
555 static int snd_compr_allocate_buffer(struct snd_compr_stream *stream, in snd_compr_allocate_buffer() argument
561 if (stream->direction == SND_COMPRESS_ACCEL) in snd_compr_allocate_buffer()
565 if (stream->ops->copy) { in snd_compr_allocate_buffer()
571 if (stream->runtime->dma_buffer_p) { in snd_compr_allocate_buffer()
573 if (buffer_size > stream->runtime->dma_buffer_p->bytes) in snd_compr_allocate_buffer()
574 dev_err(stream->device->dev, in snd_compr_allocate_buffer()
577 buffer = stream->runtime->dma_buffer_p->area; in snd_compr_allocate_buffer()
587 stream->runtime->buffer = buffer; in snd_compr_allocate_buffer()
588 stream->runtime->buffer_size = buffer_size; in snd_compr_allocate_buffer()
590 stream->runtime->fragment_size = params->buffer.fragment_size; in snd_compr_allocate_buffer()
591 stream->runtime->fragments = params->buffer.fragments; in snd_compr_allocate_buffer()
596 snd_compress_check_input(struct snd_compr_stream *stream, struct snd_compr_params *params) in snd_compress_check_input() argument
604 if (stream->direction == SND_COMPRESS_ACCEL) in snd_compress_check_input()
624 snd_compr_set_params(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_set_params() argument
629 if (stream->runtime->state == SNDRV_PCM_STATE_OPEN || stream->next_track) { in snd_compr_set_params()
631 * we should allow parameter change only when stream has been in snd_compr_set_params()
638 retval = snd_compress_check_input(stream, params); in snd_compr_set_params()
642 retval = snd_compr_allocate_buffer(stream, params); in snd_compr_set_params()
646 retval = stream->ops->set_params(stream, params); in snd_compr_set_params()
650 if (stream->next_track) in snd_compr_set_params()
653 stream->metadata_set = false; in snd_compr_set_params()
654 stream->next_track = false; in snd_compr_set_params()
656 stream->runtime->state = SNDRV_PCM_STATE_SETUP; in snd_compr_set_params()
664 snd_compr_get_params(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_get_params() argument
669 if (!stream->ops->get_params) in snd_compr_get_params()
675 retval = stream->ops->get_params(stream, params); in snd_compr_get_params()
684 snd_compr_get_metadata(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_get_metadata() argument
689 if (!stream->ops->get_metadata) in snd_compr_get_metadata()
695 retval = stream->ops->get_metadata(stream, &metadata); in snd_compr_get_metadata()
706 snd_compr_set_metadata(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_set_metadata() argument
711 if (!stream->ops->set_metadata) in snd_compr_set_metadata()
714 * we should allow parameter change only when stream has been in snd_compr_set_metadata()
720 retval = stream->ops->set_metadata(stream, &metadata); in snd_compr_set_metadata()
721 stream->metadata_set = true; in snd_compr_set_metadata()
727 snd_compr_tstamp(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_tstamp() argument
732 ret = snd_compr_update_tstamp(stream, &tstamp); in snd_compr_tstamp()
739 static int snd_compr_pause(struct snd_compr_stream *stream) in snd_compr_pause() argument
743 switch (stream->runtime->state) { in snd_compr_pause()
745 retval = stream->ops->trigger(stream, SNDRV_PCM_TRIGGER_PAUSE_PUSH); in snd_compr_pause()
747 stream->runtime->state = SNDRV_PCM_STATE_PAUSED; in snd_compr_pause()
750 if (!stream->device->use_pause_in_draining) in snd_compr_pause()
752 retval = stream->ops->trigger(stream, SNDRV_PCM_TRIGGER_PAUSE_PUSH); in snd_compr_pause()
754 stream->pause_in_draining = true; in snd_compr_pause()
762 static int snd_compr_resume(struct snd_compr_stream *stream) in snd_compr_resume() argument
766 switch (stream->runtime->state) { in snd_compr_resume()
768 retval = stream->ops->trigger(stream, SNDRV_PCM_TRIGGER_PAUSE_RELEASE); in snd_compr_resume()
770 stream->runtime->state = SNDRV_PCM_STATE_RUNNING; in snd_compr_resume()
773 if (!stream->pause_in_draining) in snd_compr_resume()
775 retval = stream->ops->trigger(stream, SNDRV_PCM_TRIGGER_PAUSE_RELEASE); in snd_compr_resume()
777 stream->pause_in_draining = false; in snd_compr_resume()
785 static int snd_compr_start(struct snd_compr_stream *stream) in snd_compr_start() argument
789 switch (stream->runtime->state) { in snd_compr_start()
791 if (stream->direction != SND_COMPRESS_CAPTURE) in snd_compr_start()
800 retval = stream->ops->trigger(stream, SNDRV_PCM_TRIGGER_START); in snd_compr_start()
802 stream->runtime->state = SNDRV_PCM_STATE_RUNNING; in snd_compr_start()
806 static int snd_compr_stop(struct snd_compr_stream *stream) in snd_compr_stop() argument
810 switch (stream->runtime->state) { in snd_compr_stop()
819 retval = stream->ops->trigger(stream, SNDRV_PCM_TRIGGER_STOP); in snd_compr_stop()
822 stream->partial_drain = false; in snd_compr_stop()
823 stream->metadata_set = false; in snd_compr_stop()
824 stream->pause_in_draining = false; in snd_compr_stop()
825 snd_compr_drain_notify(stream); in snd_compr_stop()
826 stream->runtime->total_bytes_available = 0; in snd_compr_stop()
827 stream->runtime->total_bytes_transferred = 0; in snd_compr_stop()
834 struct snd_compr_stream *stream; in error_delayed_work() local
836 stream = container_of(work, struct snd_compr_stream, error_work.work); in error_delayed_work()
838 guard(mutex)(&stream->device->lock); in error_delayed_work()
840 stream->ops->trigger(stream, SNDRV_PCM_TRIGGER_STOP); in error_delayed_work()
841 wake_up(&stream->runtime->sleep); in error_delayed_work()
845 * snd_compr_stop_error: Report a fatal error on a stream
846 * @stream: pointer to stream
847 * @state: state to transition the stream to
849 * Stop the stream and set its state.
855 int snd_compr_stop_error(struct snd_compr_stream *stream, in snd_compr_stop_error() argument
858 if (stream->runtime->state == state) in snd_compr_stop_error()
861 stream->runtime->state = state; in snd_compr_stop_error()
865 queue_delayed_work(system_power_efficient_wq, &stream->error_work, 0); in snd_compr_stop_error()
871 static int snd_compress_wait_for_drain(struct snd_compr_stream *stream) in snd_compress_wait_for_drain() argument
880 * stream will be moved to SETUP state, even if draining resulted in an in snd_compress_wait_for_drain()
883 stream->runtime->state = SNDRV_PCM_STATE_DRAINING; in snd_compress_wait_for_drain()
884 mutex_unlock(&stream->device->lock); in snd_compress_wait_for_drain()
892 ret = wait_event_interruptible(stream->runtime->sleep, in snd_compress_wait_for_drain()
893 (stream->runtime->state != SNDRV_PCM_STATE_DRAINING)); in snd_compress_wait_for_drain()
900 wake_up(&stream->runtime->sleep); in snd_compress_wait_for_drain()
901 mutex_lock(&stream->device->lock); in snd_compress_wait_for_drain()
906 static int snd_compr_drain(struct snd_compr_stream *stream) in snd_compr_drain() argument
910 switch (stream->runtime->state) { in snd_compr_drain()
922 retval = stream->ops->trigger(stream, SND_COMPR_TRIGGER_DRAIN); in snd_compr_drain()
925 wake_up(&stream->runtime->sleep); in snd_compr_drain()
929 return snd_compress_wait_for_drain(stream); in snd_compr_drain()
932 static int snd_compr_next_track(struct snd_compr_stream *stream) in snd_compr_next_track() argument
936 /* only a running stream can transition to next track */ in snd_compr_next_track()
937 if (stream->runtime->state != SNDRV_PCM_STATE_RUNNING) in snd_compr_next_track()
941 if (stream->direction == SND_COMPRESS_CAPTURE) in snd_compr_next_track()
944 /* you can signal next track if this is intended to be a gapless stream in snd_compr_next_track()
947 if (stream->metadata_set == false) in snd_compr_next_track()
950 retval = stream->ops->trigger(stream, SND_COMPR_TRIGGER_NEXT_TRACK); in snd_compr_next_track()
953 stream->metadata_set = false; in snd_compr_next_track()
954 stream->next_track = true; in snd_compr_next_track()
958 static int snd_compr_partial_drain(struct snd_compr_stream *stream) in snd_compr_partial_drain() argument
962 switch (stream->runtime->state) { in snd_compr_partial_drain()
975 if (stream->direction == SND_COMPRESS_CAPTURE) in snd_compr_partial_drain()
978 /* stream can be drained only when next track has been signalled */ in snd_compr_partial_drain()
979 if (stream->next_track == false) in snd_compr_partial_drain()
982 stream->partial_drain = true; in snd_compr_partial_drain()
983 retval = stream->ops->trigger(stream, SND_COMPR_TRIGGER_PARTIAL_DRAIN); in snd_compr_partial_drain()
986 wake_up(&stream->runtime->sleep); in snd_compr_partial_drain()
990 stream->next_track = false; in snd_compr_partial_drain()
991 return snd_compress_wait_for_drain(stream); in snd_compr_partial_drain()
997 snd_compr_find_task(struct snd_compr_stream *stream, __u64 seqno) in snd_compr_find_task() argument
1001 list_for_each_entry(task, &stream->runtime->tasks, list) { in snd_compr_find_task()
1017 static u64 snd_compr_seqno_next(struct snd_compr_stream *stream) in snd_compr_seqno_next() argument
1019 u64 seqno = ++stream->runtime->task_seqno; in snd_compr_seqno_next()
1021 seqno = ++stream->runtime->task_seqno; in snd_compr_seqno_next()
1025 static int snd_compr_task_new(struct snd_compr_stream *stream, struct snd_compr_task *utask) in snd_compr_task_new() argument
1030 if (stream->runtime->total_tasks >= stream->runtime->fragments) in snd_compr_task_new()
1037 task->seqno = utask->seqno = snd_compr_seqno_next(stream); in snd_compr_task_new()
1039 retval = stream->ops->task_create(stream, task); in snd_compr_task_new()
1063 list_add_tail(&task->list, &stream->runtime->tasks); in snd_compr_task_new()
1064 stream->runtime->total_tasks++; in snd_compr_task_new()
1071 static int snd_compr_task_create(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_task_create() argument
1076 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP) in snd_compr_task_create()
1081 retval = snd_compr_task_new(stream, task); in snd_compr_task_create()
1103 static int snd_compr_task_start(struct snd_compr_stream *stream, struct snd_compr_task *utask) in snd_compr_task_start() argument
1109 task = snd_compr_find_task(stream, utask->origin_seqno); in snd_compr_task_start()
1113 task->seqno = utask->seqno = snd_compr_seqno_next(stream); in snd_compr_task_start()
1115 list_move_tail(&task->list, &stream->runtime->tasks); in snd_compr_task_start()
1117 task = snd_compr_find_task(stream, utask->seqno); in snd_compr_task_start()
1124 retval = stream->ops->task_start(stream, task); in snd_compr_task_start()
1127 stream->runtime->active_tasks++; in snd_compr_task_start()
1132 static int snd_compr_task_start_ioctl(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_task_start_ioctl() argument
1137 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP) in snd_compr_task_start_ioctl()
1142 retval = snd_compr_task_start(stream, task); in snd_compr_task_start_ioctl()
1149 static void snd_compr_task_stop_one(struct snd_compr_stream *stream, in snd_compr_task_stop_one() argument
1154 stream->ops->task_stop(stream, task); in snd_compr_task_stop_one()
1155 if (!snd_BUG_ON(stream->runtime->active_tasks == 0)) in snd_compr_task_stop_one()
1156 stream->runtime->active_tasks--; in snd_compr_task_stop_one()
1157 list_move_tail(&task->list, &stream->runtime->tasks); in snd_compr_task_stop_one()
1161 static void snd_compr_task_free_one(struct snd_compr_stream *stream, in snd_compr_task_free_one() argument
1164 snd_compr_task_stop_one(stream, task); in snd_compr_task_free_one()
1165 stream->ops->task_free(stream, task); in snd_compr_task_free_one()
1168 stream->runtime->total_tasks--; in snd_compr_task_free_one()
1171 static void snd_compr_task_free_all(struct snd_compr_stream *stream) in snd_compr_task_free_all() argument
1175 list_for_each_entry_safe_reverse(task, temp, &stream->runtime->tasks, list) in snd_compr_task_free_all()
1176 snd_compr_task_free_one(stream, task); in snd_compr_task_free_all()
1179 typedef void (*snd_compr_seq_func_t)(struct snd_compr_stream *stream,
1182 static int snd_compr_task_seq(struct snd_compr_stream *stream, unsigned long arg, in snd_compr_task_seq() argument
1189 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP) in snd_compr_task_seq()
1196 list_for_each_entry_safe_reverse(task, temp, &stream->runtime->tasks, list) in snd_compr_task_seq()
1197 fcn(stream, task); in snd_compr_task_seq()
1199 task = snd_compr_find_task(stream, seqno); in snd_compr_task_seq()
1203 fcn(stream, task); in snd_compr_task_seq()
1209 static int snd_compr_task_status(struct snd_compr_stream *stream, in snd_compr_task_status() argument
1214 task = snd_compr_find_task(stream, status->seqno); in snd_compr_task_status()
1223 static int snd_compr_task_status_ioctl(struct snd_compr_stream *stream, unsigned long arg) in snd_compr_task_status_ioctl() argument
1228 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP) in snd_compr_task_status_ioctl()
1233 retval = snd_compr_task_status(stream, status); in snd_compr_task_status_ioctl()
1242 * @stream: pointer to stream
1247 void snd_compr_task_finished(struct snd_compr_stream *stream, in snd_compr_task_finished() argument
1250 guard(mutex)(&stream->device->lock); in snd_compr_task_finished()
1251 if (!snd_BUG_ON(stream->runtime->active_tasks == 0)) in snd_compr_task_finished()
1252 stream->runtime->active_tasks--; in snd_compr_task_finished()
1254 wake_up(&stream->runtime->sleep); in snd_compr_task_finished()
1264 struct snd_compr_stream *stream; in snd_compr_ioctl() local
1269 stream = &data->stream; in snd_compr_ioctl()
1271 guard(mutex)(&stream->device->lock); in snd_compr_ioctl()
1277 return snd_compr_get_caps(stream, arg); in snd_compr_ioctl()
1280 return snd_compr_get_codec_caps(stream, arg); in snd_compr_ioctl()
1283 return snd_compr_set_params(stream, arg); in snd_compr_ioctl()
1285 return snd_compr_get_params(stream, arg); in snd_compr_ioctl()
1287 return snd_compr_set_metadata(stream, arg); in snd_compr_ioctl()
1289 return snd_compr_get_metadata(stream, arg); in snd_compr_ioctl()
1292 if (stream->direction == SND_COMPRESS_ACCEL) { in snd_compr_ioctl()
1296 return snd_compr_task_create(stream, arg); in snd_compr_ioctl()
1298 return snd_compr_task_seq(stream, arg, snd_compr_task_free_one); in snd_compr_ioctl()
1300 return snd_compr_task_start_ioctl(stream, arg); in snd_compr_ioctl()
1302 return snd_compr_task_seq(stream, arg, snd_compr_task_stop_one); in snd_compr_ioctl()
1304 return snd_compr_task_status_ioctl(stream, arg); in snd_compr_ioctl()
1312 return snd_compr_tstamp(stream, arg); in snd_compr_ioctl()
1314 return snd_compr_ioctl_avail(stream, arg); in snd_compr_ioctl()
1316 return snd_compr_pause(stream); in snd_compr_ioctl()
1318 return snd_compr_resume(stream); in snd_compr_ioctl()
1320 return snd_compr_start(stream); in snd_compr_ioctl()
1322 return snd_compr_stop(stream); in snd_compr_ioctl()
1324 return snd_compr_drain(stream); in snd_compr_ioctl()
1326 return snd_compr_partial_drain(stream); in snd_compr_ioctl()
1328 return snd_compr_next_track(stream); in snd_compr_ioctl()
1397 snd_iprintf(buffer, "stream: %s\n", in snd_compress_proc_info_read()