Lines Matching refs:queue

74 	struct msm_gpu_submitqueue *queue = container_of(kref,  in msm_submitqueue_destroy()  local
77 idr_destroy(&queue->fence_idr); in msm_submitqueue_destroy()
79 if (queue->entity == &queue->_vm_bind_entity[0]) in msm_submitqueue_destroy()
80 drm_sched_entity_destroy(queue->entity); in msm_submitqueue_destroy()
82 msm_context_put(queue->ctx); in msm_submitqueue_destroy()
84 kfree(queue); in msm_submitqueue_destroy()
112 struct msm_gpu_submitqueue *queue, *tmp; in msm_submitqueue_close() local
121 list_for_each_entry_safe(queue, tmp, &ctx->submitqueues, node) { in msm_submitqueue_close()
122 if (queue->entity == &queue->_vm_bind_entity[0]) in msm_submitqueue_close()
123 drm_sched_entity_flush(queue->entity, MAX_WAIT_SCHED_ENTITY_Q_EMPTY); in msm_submitqueue_close()
124 list_del(&queue->node); in msm_submitqueue_close()
125 msm_submitqueue_put(queue); in msm_submitqueue_close()
175 struct msm_gpu_submitqueue *queue; in msm_submitqueue_create() local
196 sz = struct_size(queue, _vm_bind_entity, 1); in msm_submitqueue_create()
197 queue = kzalloc(sz, GFP_KERNEL); in msm_submitqueue_create()
210 queue = kzalloc_obj(*queue); in msm_submitqueue_create()
213 if (!queue) in msm_submitqueue_create()
216 kref_init(&queue->ref); in msm_submitqueue_create()
217 queue->flags = flags; in msm_submitqueue_create()
222 queue->entity = &queue->_vm_bind_entity[0]; in msm_submitqueue_create()
224 drm_sched_entity_init(queue->entity, DRM_SCHED_PRIORITY_KERNEL, in msm_submitqueue_create()
227 queue->ring_nr = ring_nr; in msm_submitqueue_create()
229 queue->entity = get_sched_entity(ctx, priv->gpu->rb[ring_nr], in msm_submitqueue_create()
233 if (IS_ERR(queue->entity)) { in msm_submitqueue_create()
234 ret = PTR_ERR(queue->entity); in msm_submitqueue_create()
235 kfree(queue); in msm_submitqueue_create()
241 queue->ctx = msm_context_get(ctx); in msm_submitqueue_create()
242 queue->id = ctx->queueid++; in msm_submitqueue_create()
245 *id = queue->id; in msm_submitqueue_create()
247 idr_init(&queue->fence_idr); in msm_submitqueue_create()
248 spin_lock_init(&queue->idr_lock); in msm_submitqueue_create()
249 mutex_init(&queue->lock); in msm_submitqueue_create()
251 list_add_tail(&queue->node, &ctx->submitqueues); in msm_submitqueue_create()
282 static int msm_submitqueue_query_faults(struct msm_gpu_submitqueue *queue, in msm_submitqueue_query_faults() argument
285 size_t size = min_t(size_t, args->len, sizeof(queue->faults)); in msm_submitqueue_query_faults()
290 args->len = sizeof(queue->faults); in msm_submitqueue_query_faults()
297 ret = copy_to_user(u64_to_user_ptr(args->data), &queue->faults, size); in msm_submitqueue_query_faults()
305 struct msm_gpu_submitqueue *queue; in msm_submitqueue_query() local
311 queue = msm_submitqueue_get(ctx, args->id); in msm_submitqueue_query()
312 if (!queue) in msm_submitqueue_query()
316 ret = msm_submitqueue_query_faults(queue, args); in msm_submitqueue_query()
318 msm_submitqueue_put(queue); in msm_submitqueue_query()