Lines Matching refs:task
433 struct snd_compr_task_runtime *task; in snd_compr_poll() local
436 task = list_first_entry_or_null(&runtime->tasks, in snd_compr_poll()
439 if (task && task->state == SND_COMPRESS_TASK_STATE_FINISHED) in snd_compr_poll()
999 struct snd_compr_task_runtime *task; in snd_compr_find_task() local
1001 list_for_each_entry(task, &stream->runtime->tasks, list) { in snd_compr_find_task()
1002 if (task->seqno == seqno) in snd_compr_find_task()
1003 return task; in snd_compr_find_task()
1008 static void snd_compr_task_free(struct snd_compr_task_runtime *task) in snd_compr_task_free() argument
1010 if (task->output) in snd_compr_task_free()
1011 dma_buf_put(task->output); in snd_compr_task_free()
1012 if (task->input) in snd_compr_task_free()
1013 dma_buf_put(task->input); in snd_compr_task_free()
1014 kfree(task); in snd_compr_task_free()
1027 struct snd_compr_task_runtime *task; in snd_compr_task_new() local
1034 task = kzalloc(sizeof(*task), GFP_KERNEL); in snd_compr_task_new()
1035 if (task == NULL) in snd_compr_task_new()
1037 task->seqno = utask->seqno = snd_compr_seqno_next(stream); in snd_compr_task_new()
1038 task->input_size = utask->input_size; in snd_compr_task_new()
1039 retval = stream->ops->task_create(stream, task); in snd_compr_task_new()
1044 if (!task->input || !task->input->file || !task->output || !task->output->file) { in snd_compr_task_new()
1057 get_dma_buf(task->input); in snd_compr_task_new()
1058 get_dma_buf(task->output); in snd_compr_task_new()
1059 fd_install(fd_i, task->input->file); in snd_compr_task_new()
1060 fd_install(fd_o, task->output->file); in snd_compr_task_new()
1063 list_add_tail(&task->list, &stream->runtime->tasks); in snd_compr_task_new()
1067 snd_compr_task_free(task); in snd_compr_task_new()
1073 struct snd_compr_task *task __free(kfree) = NULL; in snd_compr_task_create()
1078 task = memdup_user((void __user *)arg, sizeof(*task)); in snd_compr_task_create()
1079 if (IS_ERR(task)) in snd_compr_task_create()
1080 return PTR_ERR(task); in snd_compr_task_create()
1081 retval = snd_compr_task_new(stream, task); in snd_compr_task_create()
1083 if (copy_to_user((void __user *)arg, task, sizeof(*task))) in snd_compr_task_create()
1088 static int snd_compr_task_start_prepare(struct snd_compr_task_runtime *task, in snd_compr_task_start_prepare() argument
1091 if (task == NULL) in snd_compr_task_start_prepare()
1093 if (task->state >= SND_COMPRESS_TASK_STATE_FINISHED) in snd_compr_task_start_prepare()
1095 if (utask->input_size > task->input->size) in snd_compr_task_start_prepare()
1097 task->flags = utask->flags; in snd_compr_task_start_prepare()
1098 task->input_size = utask->input_size; in snd_compr_task_start_prepare()
1099 task->state = SND_COMPRESS_TASK_STATE_IDLE; in snd_compr_task_start_prepare()
1105 struct snd_compr_task_runtime *task; in snd_compr_task_start() local
1109 task = snd_compr_find_task(stream, utask->origin_seqno); in snd_compr_task_start()
1110 retval = snd_compr_task_start_prepare(task, utask); 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()
1118 if (task && task->state != SND_COMPRESS_TASK_STATE_IDLE) in snd_compr_task_start()
1120 retval = snd_compr_task_start_prepare(task, utask); in snd_compr_task_start()
1124 retval = stream->ops->task_start(stream, task); in snd_compr_task_start()
1126 task->state = SND_COMPRESS_TASK_STATE_ACTIVE; in snd_compr_task_start()
1134 struct snd_compr_task *task __free(kfree) = NULL; in snd_compr_task_start_ioctl()
1139 task = memdup_user((void __user *)arg, sizeof(*task)); in snd_compr_task_start_ioctl()
1140 if (IS_ERR(task)) in snd_compr_task_start_ioctl()
1141 return PTR_ERR(task); in snd_compr_task_start_ioctl()
1142 retval = snd_compr_task_start(stream, task); in snd_compr_task_start_ioctl()
1144 if (copy_to_user((void __user *)arg, task, sizeof(*task))) in snd_compr_task_start_ioctl()
1150 struct snd_compr_task_runtime *task) in snd_compr_task_stop_one() argument
1152 if (task->state != SND_COMPRESS_TASK_STATE_ACTIVE) in snd_compr_task_stop_one()
1154 stream->ops->task_stop(stream, task); in snd_compr_task_stop_one()
1157 list_move_tail(&task->list, &stream->runtime->tasks); in snd_compr_task_stop_one()
1158 task->state = SND_COMPRESS_TASK_STATE_IDLE; in snd_compr_task_stop_one()
1162 struct snd_compr_task_runtime *task) 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()
1166 list_del(&task->list); in snd_compr_task_free_one()
1167 snd_compr_task_free(task); in snd_compr_task_free_one()
1173 struct snd_compr_task_runtime *task, *temp; in snd_compr_task_free_all() local
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()
1180 struct snd_compr_task_runtime *task);
1185 struct snd_compr_task_runtime *task, *temp; in snd_compr_task_seq() local
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()
1200 if (task == NULL) { in snd_compr_task_seq()
1203 fcn(stream, task); in snd_compr_task_seq()
1212 struct snd_compr_task_runtime *task; in snd_compr_task_status() local
1214 task = snd_compr_find_task(stream, status->seqno); in snd_compr_task_status()
1215 if (task == NULL) in snd_compr_task_status()
1217 status->input_size = task->input_size; in snd_compr_task_status()
1218 status->output_size = task->output_size; in snd_compr_task_status()
1219 status->state = task->state; in snd_compr_task_status()
1248 struct snd_compr_task_runtime *task) in snd_compr_task_finished() argument
1253 task->state = SND_COMPRESS_TASK_STATE_FINISHED; in snd_compr_task_finished()