Lines Matching refs:file_priv

58 struct ivpu_file_priv *ivpu_file_priv_get(struct ivpu_file_priv *file_priv)  in ivpu_file_priv_get()  argument
60 struct ivpu_device *vdev = file_priv->vdev; in ivpu_file_priv_get()
62 kref_get(&file_priv->ref); in ivpu_file_priv_get()
65 file_priv->ctx.id, kref_read(&file_priv->ref)); in ivpu_file_priv_get()
67 return file_priv; in ivpu_file_priv_get()
72 struct ivpu_file_priv *file_priv; in ivpu_file_priv_get_by_ctx_id() local
75 file_priv = xa_load(&vdev->context_xa, id); in ivpu_file_priv_get_by_ctx_id()
77 if (file_priv && !kref_get_unless_zero(&file_priv->ref)) in ivpu_file_priv_get_by_ctx_id()
78 file_priv = NULL; in ivpu_file_priv_get_by_ctx_id()
81 if (file_priv) in ivpu_file_priv_get_by_ctx_id()
83 file_priv->ctx.id, kref_read(&file_priv->ref)); in ivpu_file_priv_get_by_ctx_id()
85 return file_priv; in ivpu_file_priv_get_by_ctx_id()
90 struct ivpu_file_priv *file_priv = container_of(ref, struct ivpu_file_priv, ref); in file_priv_release() local
91 struct ivpu_device *vdev = file_priv->vdev; in file_priv_release()
93 ivpu_dbg(vdev, FILE, "file_priv release: ctx %u\n", file_priv->ctx.id); in file_priv_release()
95 ivpu_cmdq_release_all(file_priv); in file_priv_release()
96 ivpu_bo_remove_all_bos_from_context(&file_priv->ctx); in file_priv_release()
97 ivpu_jsm_context_release(vdev, file_priv->ctx.id); in file_priv_release()
98 ivpu_mmu_user_context_fini(vdev, &file_priv->ctx); in file_priv_release()
99 drm_WARN_ON(&vdev->drm, xa_erase_irq(&vdev->context_xa, file_priv->ctx.id) != file_priv); in file_priv_release()
100 mutex_destroy(&file_priv->lock); in file_priv_release()
101 kfree(file_priv); in file_priv_release()
106 struct ivpu_file_priv *file_priv = *link; in ivpu_file_priv_put() local
107 struct ivpu_device *vdev = file_priv->vdev; in ivpu_file_priv_put()
109 drm_WARN_ON(&vdev->drm, !file_priv); in ivpu_file_priv_put()
112 file_priv->ctx.id, kref_read(&file_priv->ref)); in ivpu_file_priv_put()
115 kref_put(&file_priv->ref, file_priv_release); in ivpu_file_priv_put()
136 struct ivpu_file_priv *file_priv = file->driver_priv; in ivpu_get_param_ioctl() local
137 struct ivpu_device *vdev = file_priv->vdev; in ivpu_get_param_ioctl()
166 args->value = file_priv->priority; in ivpu_get_param_ioctl()
169 args->value = file_priv->ctx.id; in ivpu_get_param_ioctl()
207 struct ivpu_file_priv *file_priv = file->driver_priv; in ivpu_set_param_ioctl() local
214 file_priv->priority = args->value; in ivpu_set_param_ioctl()
228 struct ivpu_file_priv *file_priv; in ivpu_open() local
239 file_priv = kzalloc(sizeof(*file_priv), GFP_KERNEL); in ivpu_open()
240 if (!file_priv) { in ivpu_open()
245 file_priv->vdev = vdev; in ivpu_open()
246 file_priv->priority = DRM_IVPU_CONTEXT_PRIORITY_NORMAL; in ivpu_open()
247 kref_init(&file_priv->ref); in ivpu_open()
248 mutex_init(&file_priv->lock); in ivpu_open()
250 ret = ivpu_mmu_user_context_init(vdev, &file_priv->ctx, ctx_id); in ivpu_open()
254 old = xa_store_irq(&vdev->context_xa, ctx_id, file_priv, GFP_KERNEL); in ivpu_open()
264 file->driver_priv = file_priv; in ivpu_open()
268 ivpu_mmu_user_context_fini(vdev, &file_priv->ctx); in ivpu_open()
270 mutex_destroy(&file_priv->lock); in ivpu_open()
271 kfree(file_priv); in ivpu_open()
279 struct ivpu_file_priv *file_priv = file->driver_priv; in ivpu_postclose() local
283 file_priv->ctx.id, current->comm, task_pid_nr(current)); in ivpu_postclose()
285 ivpu_file_priv_put(&file_priv); in ivpu_postclose()