Lines Matching refs:file_priv
36 static struct ivpu_cmdq *ivpu_cmdq_alloc(struct ivpu_file_priv *file_priv, u16 engine) in ivpu_cmdq_alloc() argument
38 struct ivpu_device *vdev = file_priv->vdev; in ivpu_cmdq_alloc()
50 cmdq->db_id = file_priv->ctx.id + engine * ivpu_get_context_count(vdev); in ivpu_cmdq_alloc()
68 static void ivpu_cmdq_free(struct ivpu_file_priv *file_priv, struct ivpu_cmdq *cmdq) in ivpu_cmdq_free() argument
77 static struct ivpu_cmdq *ivpu_cmdq_acquire(struct ivpu_file_priv *file_priv, u16 engine) in ivpu_cmdq_acquire() argument
79 struct ivpu_device *vdev = file_priv->vdev; in ivpu_cmdq_acquire()
80 struct ivpu_cmdq *cmdq = file_priv->cmdq[engine]; in ivpu_cmdq_acquire()
83 lockdep_assert_held(&file_priv->lock); in ivpu_cmdq_acquire()
86 cmdq = ivpu_cmdq_alloc(file_priv, engine); in ivpu_cmdq_acquire()
89 file_priv->cmdq[engine] = cmdq; in ivpu_cmdq_acquire()
95 ret = ivpu_jsm_register_db(vdev, file_priv->ctx.id, cmdq->db_id, in ivpu_cmdq_acquire()
105 static void ivpu_cmdq_release_locked(struct ivpu_file_priv *file_priv, u16 engine) in ivpu_cmdq_release_locked() argument
107 struct ivpu_cmdq *cmdq = file_priv->cmdq[engine]; in ivpu_cmdq_release_locked()
109 lockdep_assert_held(&file_priv->lock); in ivpu_cmdq_release_locked()
112 file_priv->cmdq[engine] = NULL; in ivpu_cmdq_release_locked()
114 ivpu_jsm_unregister_db(file_priv->vdev, cmdq->db_id); in ivpu_cmdq_release_locked()
116 ivpu_cmdq_free(file_priv, cmdq); in ivpu_cmdq_release_locked()
120 void ivpu_cmdq_release_all(struct ivpu_file_priv *file_priv) in ivpu_cmdq_release_all() argument
124 mutex_lock(&file_priv->lock); in ivpu_cmdq_release_all()
127 ivpu_cmdq_release_locked(file_priv, i); in ivpu_cmdq_release_all()
129 mutex_unlock(&file_priv->lock); in ivpu_cmdq_release_all()
138 static void ivpu_cmdq_reset_locked(struct ivpu_file_priv *file_priv, u16 engine) in ivpu_cmdq_reset_locked() argument
140 struct ivpu_cmdq *cmdq = file_priv->cmdq[engine]; in ivpu_cmdq_reset_locked()
142 lockdep_assert_held(&file_priv->lock); in ivpu_cmdq_reset_locked()
152 static void ivpu_cmdq_reset_all(struct ivpu_file_priv *file_priv) in ivpu_cmdq_reset_all() argument
156 mutex_lock(&file_priv->lock); in ivpu_cmdq_reset_all()
159 ivpu_cmdq_reset_locked(file_priv, i); in ivpu_cmdq_reset_all()
161 mutex_unlock(&file_priv->lock); in ivpu_cmdq_reset_all()
166 struct ivpu_file_priv *file_priv; in ivpu_cmdq_reset_all_contexts() local
169 xa_for_each(&vdev->context_xa, ctx_id, file_priv) { in ivpu_cmdq_reset_all_contexts()
170 file_priv = ivpu_file_priv_get_by_ctx_id(vdev, ctx_id); in ivpu_cmdq_reset_all_contexts()
171 if (!file_priv) in ivpu_cmdq_reset_all_contexts()
174 ivpu_cmdq_reset_all(file_priv); in ivpu_cmdq_reset_all_contexts()
176 ivpu_file_priv_put(&file_priv); in ivpu_cmdq_reset_all_contexts()
191 job->file_priv->ctx.id, job->engine_idx, cmdq->db_id, header->head, tail); in ivpu_cmdq_push_job()
270 ivpu_file_priv_put(&job->file_priv); in job_release()
288 ivpu_create_job(struct ivpu_file_priv *file_priv, u32 engine_idx, u32 bo_count) in ivpu_create_job() argument
290 struct ivpu_device *vdev = file_priv->vdev; in ivpu_create_job()
313 job->file_priv = ivpu_file_priv_get(file_priv); in ivpu_create_job()
315 ivpu_dbg(vdev, JOB, "Job created: ctx %2d engine %d", file_priv->ctx.id, job->engine_idx); in ivpu_create_job()
334 if (job->file_priv->has_mmu_faults) in ivpu_job_done()
341 job->job_id, job->file_priv->ctx.id, job->engine_idx, job_status); in ivpu_job_done()
371 struct ivpu_file_priv *file_priv = job->file_priv; in ivpu_direct_job_submission() local
377 mutex_lock(&file_priv->lock); in ivpu_direct_job_submission()
379 cmdq = ivpu_cmdq_acquire(job->file_priv, job->engine_idx); in ivpu_direct_job_submission()
382 file_priv->ctx.id, job->engine_idx); in ivpu_direct_job_submission()
387 job_id_range.min = FIELD_PREP(JOB_ID_CONTEXT_MASK, (file_priv->ctx.id - 1)); in ivpu_direct_job_submission()
402 job->job_id, job->cmd_buf_vpu_addr, file_priv->ctx.id, in ivpu_direct_job_submission()
413 mutex_unlock(&file_priv->lock); in ivpu_direct_job_submission()
421 mutex_unlock(&file_priv->lock); in ivpu_direct_job_submission()
429 struct ivpu_file_priv *file_priv = file->driver_priv; in ivpu_job_prepare_bos_for_submit() local
430 struct ivpu_device *vdev = file_priv->vdev; in ivpu_job_prepare_bos_for_submit()
493 struct ivpu_file_priv *file_priv = file->driver_priv; in ivpu_submit_ioctl() local
494 struct ivpu_device *vdev = file_priv->vdev; in ivpu_submit_ioctl()
509 if (!file_priv->ctx.id) in ivpu_submit_ioctl()
512 if (file_priv->has_mmu_faults) in ivpu_submit_ioctl()
533 file_priv->ctx.id, params->buffer_count); in ivpu_submit_ioctl()
535 job = ivpu_create_job(file_priv, params->engine, params->buffer_count); in ivpu_submit_ioctl()