Lines Matching refs:runtime

86 	struct snd_compr_runtime *runtime;
129 runtime = kzalloc(sizeof(*runtime), GFP_KERNEL);
130 if (!runtime) {
135 runtime->state = SNDRV_PCM_STATE_OPEN;
136 init_waitqueue_head(&runtime->sleep);
138 INIT_LIST_HEAD(&runtime->tasks);
140 data->stream.runtime = runtime;
145 kfree(runtime);
155 struct snd_compr_runtime *runtime = data->stream.runtime;
159 switch (runtime->state) {
172 if (!data->stream.runtime->dma_buffer_p)
173 kfree(data->stream.runtime->buffer);
174 kfree(data->stream.runtime);
188 stream->runtime->total_bytes_transferred = tstamp->copied_total;
190 stream->runtime->total_bytes_available = tstamp->copied_total;
201 if (stream->runtime->total_bytes_available == 0 &&
202 stream->runtime->state == SNDRV_PCM_STATE_SETUP &&
205 return stream->runtime->buffer_size;
208 stream->runtime->total_bytes_available,
209 stream->runtime->total_bytes_transferred);
210 if (stream->runtime->total_bytes_available ==
211 stream->runtime->total_bytes_transferred) {
214 return stream->runtime->buffer_size;
221 avail->avail = stream->runtime->total_bytes_available -
222 stream->runtime->total_bytes_transferred;
224 avail->avail = stream->runtime->buffer_size - avail->avail;
249 switch (stream->runtime->state) {
269 struct snd_compr_runtime *runtime = stream->runtime;
271 u64 app_pointer = div64_u64(runtime->total_bytes_available,
272 runtime->buffer_size);
273 app_pointer = runtime->total_bytes_available -
274 (app_pointer * runtime->buffer_size);
276 dstn = runtime->buffer + app_pointer;
279 if (count < runtime->buffer_size - app_pointer) {
283 copy = runtime->buffer_size - app_pointer;
286 if (copy_from_user(runtime->buffer, buf + copy, count - copy))
311 switch (stream->runtime->state) {
333 stream->runtime->total_bytes_available += retval;
337 if (stream->runtime->state == SNDRV_PCM_STATE_SETUP) {
338 stream->runtime->state = SNDRV_PCM_STATE_PREPARED;
366 switch (stream->runtime->state) {
387 stream->runtime->total_bytes_transferred += retval;
409 struct snd_compr_runtime *runtime;
417 runtime = stream->runtime;
421 switch (runtime->state) {
429 poll_wait(f, &runtime->sleep, wait);
434 if (runtime->fragments > runtime->active_tasks)
436 task = list_first_entry_or_null(&runtime->tasks,
448 switch (runtime->state) {
454 runtime->state = SNDRV_PCM_STATE_SETUP;
459 if (avail >= runtime->fragment_size)
516 if (snd_BUG_ON(!(stream) || !(stream)->runtime))
529 stream->runtime->dma_bytes = size;
536 struct snd_compr_runtime *runtime;
538 if (snd_BUG_ON(!(stream) || !(stream)->runtime))
540 runtime = stream->runtime;
541 if (runtime->dma_area == NULL)
543 if (runtime->dma_buffer_p != &stream->dma_buffer) {
545 snd_dma_free_pages(runtime->dma_buffer_p);
546 kfree(runtime->dma_buffer_p);
571 if (stream->runtime->dma_buffer_p) {
573 if (buffer_size > stream->runtime->dma_buffer_p->bytes)
577 buffer = stream->runtime->dma_buffer_p->area;
587 stream->runtime->buffer = buffer;
588 stream->runtime->buffer_size = buffer_size;
590 stream->runtime->fragment_size = params->buffer.fragment_size;
591 stream->runtime->fragments = params->buffer.fragments;
629 if (stream->runtime->state == SNDRV_PCM_STATE_OPEN || stream->next_track) {
656 stream->runtime->state = SNDRV_PCM_STATE_SETUP;
743 switch (stream->runtime->state) {
747 stream->runtime->state = SNDRV_PCM_STATE_PAUSED;
766 switch (stream->runtime->state) {
770 stream->runtime->state = SNDRV_PCM_STATE_RUNNING;
789 switch (stream->runtime->state) {
802 stream->runtime->state = SNDRV_PCM_STATE_RUNNING;
810 switch (stream->runtime->state) {
826 stream->runtime->total_bytes_available = 0;
827 stream->runtime->total_bytes_transferred = 0;
841 wake_up(&stream->runtime->sleep);
858 if (stream->runtime->state == state)
861 stream->runtime->state = state;
883 stream->runtime->state = SNDRV_PCM_STATE_DRAINING;
892 ret = wait_event_interruptible(stream->runtime->sleep,
893 (stream->runtime->state != SNDRV_PCM_STATE_DRAINING));
900 wake_up(&stream->runtime->sleep);
910 switch (stream->runtime->state) {
925 wake_up(&stream->runtime->sleep);
937 if (stream->runtime->state != SNDRV_PCM_STATE_RUNNING)
962 switch (stream->runtime->state) {
986 wake_up(&stream->runtime->sleep);
1001 list_for_each_entry(task, &stream->runtime->tasks, list) {
1019 u64 seqno = ++stream->runtime->task_seqno;
1021 seqno = ++stream->runtime->task_seqno;
1030 if (stream->runtime->total_tasks >= stream->runtime->fragments)
1063 list_add_tail(&task->list, &stream->runtime->tasks);
1064 stream->runtime->total_tasks++;
1076 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP)
1115 list_move_tail(&task->list, &stream->runtime->tasks);
1127 stream->runtime->active_tasks++;
1137 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP)
1155 if (!snd_BUG_ON(stream->runtime->active_tasks == 0))
1156 stream->runtime->active_tasks--;
1157 list_move_tail(&task->list, &stream->runtime->tasks);
1168 stream->runtime->total_tasks--;
1175 list_for_each_entry_safe_reverse(task, temp, &stream->runtime->tasks, list)
1189 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP)
1196 list_for_each_entry_safe_reverse(task, temp, &stream->runtime->tasks, list)
1228 if (stream->runtime->state != SNDRV_PCM_STATE_SETUP)
1243 * @task: runtime task structure
1251 if (!snd_BUG_ON(stream->runtime->active_tasks == 0))
1252 stream->runtime->active_tasks--;
1254 wake_up(&stream->runtime->sleep);