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