Lines Matching defs:inst

141 static int wait_session_msg(struct venus_inst *inst)
145 ret = wait_for_completion_timeout(&inst->done, TIMEOUT);
149 if (inst->error != HFI_ERR_NONE)
155 int hfi_session_create(struct venus_inst *inst, const struct hfi_inst_ops *ops)
157 struct venus_core *core = inst->core;
164 inst->state = INST_UNINIT;
165 init_completion(&inst->done);
166 inst->ops = ops;
170 if (test_bit(0, &inst->core->sys_error)) {
180 list_add_tail(&inst->list, &core->instances);
191 int hfi_session_init(struct venus_inst *inst, u32 pixfmt)
193 struct venus_core *core = inst->core;
203 if (!core->ops || test_bit(0, &inst->core->sys_error)) {
209 if (inst->state != INST_UNINIT)
212 inst->hfi_codec = to_codec_type(pixfmt);
213 reinit_completion(&inst->done);
215 ret = ops->session_init(inst, inst->session_type, inst->hfi_codec);
219 ret = wait_session_msg(inst);
223 inst->state = INST_INIT;
229 void hfi_session_destroy(struct venus_inst *inst)
231 struct venus_core *core = inst->core;
234 list_del_init(&inst->list);
241 int hfi_session_deinit(struct venus_inst *inst)
243 const struct hfi_ops *ops = inst->core->ops;
246 if (inst->state == INST_UNINIT)
249 if (inst->state < INST_INIT)
252 if (test_bit(0, &inst->core->sys_error))
255 reinit_completion(&inst->done);
257 ret = ops->session_end(inst);
261 ret = wait_session_msg(inst);
266 inst->state = INST_UNINIT;
272 int hfi_session_start(struct venus_inst *inst)
274 const struct hfi_ops *ops = inst->core->ops;
277 if (test_bit(0, &inst->core->sys_error))
280 if (inst->state != INST_LOAD_RESOURCES)
283 reinit_completion(&inst->done);
285 ret = ops->session_start(inst);
289 ret = wait_session_msg(inst);
293 inst->state = INST_START;
299 int hfi_session_stop(struct venus_inst *inst)
301 const struct hfi_ops *ops = inst->core->ops;
304 if (test_bit(0, &inst->core->sys_error))
307 if (inst->state != INST_START)
310 reinit_completion(&inst->done);
312 ret = ops->session_stop(inst);
316 ret = wait_session_msg(inst);
320 inst->state = INST_STOP;
326 int hfi_session_continue(struct venus_inst *inst)
328 struct venus_core *core = inst->core;
330 if (test_bit(0, &inst->core->sys_error))
336 return core->ops->session_continue(inst);
340 int hfi_session_abort(struct venus_inst *inst)
342 const struct hfi_ops *ops = inst->core->ops;
345 if (test_bit(0, &inst->core->sys_error))
348 reinit_completion(&inst->done);
350 ret = ops->session_abort(inst);
354 ret = wait_session_msg(inst);
362 int hfi_session_load_res(struct venus_inst *inst)
364 const struct hfi_ops *ops = inst->core->ops;
367 if (test_bit(0, &inst->core->sys_error))
370 if (inst->state != INST_INIT)
373 reinit_completion(&inst->done);
375 ret = ops->session_load_res(inst);
379 ret = wait_session_msg(inst);
383 inst->state = INST_LOAD_RESOURCES;
388 int hfi_session_unload_res(struct venus_inst *inst)
390 const struct hfi_ops *ops = inst->core->ops;
393 if (test_bit(0, &inst->core->sys_error))
396 if (inst->state != INST_STOP)
399 reinit_completion(&inst->done);
401 ret = ops->session_release_res(inst);
405 ret = wait_session_msg(inst);
409 inst->state = INST_RELEASE_RESOURCES;
415 int hfi_session_flush(struct venus_inst *inst, u32 type, bool block)
417 const struct hfi_ops *ops = inst->core->ops;
420 if (test_bit(0, &inst->core->sys_error))
423 reinit_completion(&inst->done);
425 ret = ops->session_flush(inst, type);
430 ret = wait_session_msg(inst);
439 int hfi_session_set_buffers(struct venus_inst *inst, struct hfi_buffer_desc *bd)
441 const struct hfi_ops *ops = inst->core->ops;
443 if (test_bit(0, &inst->core->sys_error))
446 return ops->session_set_buffers(inst, bd);
449 int hfi_session_unset_buffers(struct venus_inst *inst,
452 const struct hfi_ops *ops = inst->core->ops;
455 if (test_bit(0, &inst->core->sys_error))
458 reinit_completion(&inst->done);
460 ret = ops->session_unset_buffers(inst, bd);
467 ret = wait_session_msg(inst);
474 int hfi_session_get_property(struct venus_inst *inst, u32 ptype,
477 const struct hfi_ops *ops = inst->core->ops;
480 if (test_bit(0, &inst->core->sys_error))
483 if (inst->state < INST_INIT || inst->state >= INST_STOP)
486 reinit_completion(&inst->done);
488 ret = ops->session_get_property(inst, ptype);
492 ret = wait_session_msg(inst);
496 *hprop = inst->hprop;
502 int hfi_session_set_property(struct venus_inst *inst, u32 ptype, void *pdata)
504 const struct hfi_ops *ops = inst->core->ops;
506 if (test_bit(0, &inst->core->sys_error))
509 if (inst->state < INST_INIT || inst->state >= INST_STOP)
512 return ops->session_set_property(inst, ptype, pdata);
516 int hfi_session_process_buf(struct venus_inst *inst, struct hfi_frame_data *fd)
518 const struct hfi_ops *ops = inst->core->ops;
520 if (test_bit(0, &inst->core->sys_error))
524 return ops->session_etb(inst, fd);
527 return ops->session_ftb(inst, fd);