Lines Matching full:runtime
86 struct snd_compr_runtime *runtime; in snd_compr_open() local
129 runtime = kzalloc(sizeof(*runtime), GFP_KERNEL); in snd_compr_open()
130 if (!runtime) { in snd_compr_open()
135 runtime->state = SNDRV_PCM_STATE_OPEN; in snd_compr_open()
136 init_waitqueue_head(&runtime->sleep); in snd_compr_open()
138 INIT_LIST_HEAD(&runtime->tasks); in snd_compr_open()
140 data->stream.runtime = runtime; in snd_compr_open()
145 kfree(runtime); in snd_compr_open()
155 struct snd_compr_runtime *runtime = data->stream.runtime; in snd_compr_free() local
159 switch (runtime->state) { 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()
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()
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()
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()
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()
224 avail->avail = stream->runtime->buffer_size - avail->avail; in snd_compr_calc_avail()
249 switch (stream->runtime->state) { in snd_compr_ioctl_avail()
269 struct snd_compr_runtime *runtime = stream->runtime; in snd_compr_write_data() local
271 u64 app_pointer = div64_u64(runtime->total_bytes_available, in snd_compr_write_data()
272 runtime->buffer_size); in snd_compr_write_data()
273 app_pointer = runtime->total_bytes_available - in snd_compr_write_data()
274 (app_pointer * runtime->buffer_size); in snd_compr_write_data()
276 dstn = runtime->buffer + app_pointer; in snd_compr_write_data()
279 if (count < runtime->buffer_size - app_pointer) { in snd_compr_write_data()
283 copy = runtime->buffer_size - app_pointer; in snd_compr_write_data()
286 if (copy_from_user(runtime->buffer, buf + copy, count - copy)) in snd_compr_write_data()
311 switch (stream->runtime->state) { in snd_compr_write()
333 stream->runtime->total_bytes_available += retval; 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()
366 switch (stream->runtime->state) { in snd_compr_read()
387 stream->runtime->total_bytes_transferred += retval; in snd_compr_read()
409 struct snd_compr_runtime *runtime; in snd_compr_poll() local
417 runtime = stream->runtime; in snd_compr_poll()
421 switch (runtime->state) { in snd_compr_poll()
429 poll_wait(f, &runtime->sleep, wait); in snd_compr_poll()
434 if (runtime->fragments > runtime->active_tasks) in snd_compr_poll()
436 task = list_first_entry_or_null(&runtime->tasks, in snd_compr_poll()
448 switch (runtime->state) { in snd_compr_poll()
454 runtime->state = SNDRV_PCM_STATE_SETUP; in snd_compr_poll()
459 if (avail >= runtime->fragment_size) in snd_compr_poll()
516 if (snd_BUG_ON(!(stream) || !(stream)->runtime)) in snd_compr_malloc_pages()
529 stream->runtime->dma_bytes = size; in snd_compr_malloc_pages()
536 struct snd_compr_runtime *runtime; in snd_compr_free_pages() local
538 if (snd_BUG_ON(!(stream) || !(stream)->runtime)) in snd_compr_free_pages()
540 runtime = stream->runtime; in snd_compr_free_pages()
541 if (runtime->dma_area == NULL) in snd_compr_free_pages()
543 if (runtime->dma_buffer_p != &stream->dma_buffer) { in snd_compr_free_pages()
545 snd_dma_free_pages(runtime->dma_buffer_p); in snd_compr_free_pages()
546 kfree(runtime->dma_buffer_p); in snd_compr_free_pages()
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()
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()
629 if (stream->runtime->state == SNDRV_PCM_STATE_OPEN || stream->next_track) { in snd_compr_set_params()
656 stream->runtime->state = SNDRV_PCM_STATE_SETUP; in snd_compr_set_params()
743 switch (stream->runtime->state) { in snd_compr_pause()
747 stream->runtime->state = SNDRV_PCM_STATE_PAUSED; in snd_compr_pause()
766 switch (stream->runtime->state) { in snd_compr_resume()
770 stream->runtime->state = SNDRV_PCM_STATE_RUNNING; in snd_compr_resume()
789 switch (stream->runtime->state) { in snd_compr_start()
802 stream->runtime->state = SNDRV_PCM_STATE_RUNNING; in snd_compr_start()
810 switch (stream->runtime->state) { 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()
841 wake_up(&stream->runtime->sleep); in error_delayed_work()
858 if (stream->runtime->state == state) in snd_compr_stop_error()
861 stream->runtime->state = state; in snd_compr_stop_error()
883 stream->runtime->state = SNDRV_PCM_STATE_DRAINING; 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()
910 switch (stream->runtime->state) { in snd_compr_drain()
925 wake_up(&stream->runtime->sleep); in snd_compr_drain()
937 if (stream->runtime->state != SNDRV_PCM_STATE_RUNNING) in snd_compr_next_track()
962 switch (stream->runtime->state) { in snd_compr_partial_drain()
986 wake_up(&stream->runtime->sleep); in snd_compr_partial_drain()
1001 list_for_each_entry(task, &stream->runtime->tasks, list) { in snd_compr_find_task()
1019 u64 seqno = ++stream->runtime->task_seqno; in snd_compr_seqno_next()
1021 seqno = ++stream->runtime->task_seqno; in snd_compr_seqno_next()
1030 if (stream->runtime->total_tasks >= stream->runtime->fragments) 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()
1076 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP) in snd_compr_task_create()
1115 list_move_tail(&task->list, &stream->runtime->tasks); in snd_compr_task_start()
1127 stream->runtime->active_tasks++; in snd_compr_task_start()
1137 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP) in snd_compr_task_start_ioctl()
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()
1168 stream->runtime->total_tasks--; in snd_compr_task_free_one()
1175 list_for_each_entry_safe_reverse(task, temp, &stream->runtime->tasks, list) in snd_compr_task_free_all()
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()
1228 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP) in snd_compr_task_status_ioctl()
1243 * @task: runtime task structure
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()