Lines Matching refs:execlist

66 static void switch_virtual_execlist_slot(struct intel_vgpu_execlist *execlist)  in switch_virtual_execlist_slot()  argument
69 execlist->running_slot ? in switch_virtual_execlist_slot()
70 execlist->running_slot->index : -1, in switch_virtual_execlist_slot()
71 execlist->running_context ? in switch_virtual_execlist_slot()
72 execlist->running_context->context_id : 0, in switch_virtual_execlist_slot()
73 execlist->pending_slot ? in switch_virtual_execlist_slot()
74 execlist->pending_slot->index : -1); in switch_virtual_execlist_slot()
76 execlist->running_slot = execlist->pending_slot; in switch_virtual_execlist_slot()
77 execlist->pending_slot = NULL; in switch_virtual_execlist_slot()
78 execlist->running_context = execlist->running_context ? in switch_virtual_execlist_slot()
79 &execlist->running_slot->ctx[0] : NULL; in switch_virtual_execlist_slot()
82 execlist->running_slot ? in switch_virtual_execlist_slot()
83 execlist->running_slot->index : -1, in switch_virtual_execlist_slot()
84 execlist->running_context ? in switch_virtual_execlist_slot()
85 execlist->running_context->context_id : 0, in switch_virtual_execlist_slot()
86 execlist->pending_slot ? in switch_virtual_execlist_slot()
87 execlist->pending_slot->index : -1); in switch_virtual_execlist_slot()
90 static void emulate_execlist_status(struct intel_vgpu_execlist *execlist) in emulate_execlist_status() argument
92 struct intel_vgpu_execlist_slot *running = execlist->running_slot; in emulate_execlist_status()
93 struct intel_vgpu_execlist_slot *pending = execlist->pending_slot; in emulate_execlist_status()
94 struct execlist_ctx_descriptor_format *desc = execlist->running_context; in emulate_execlist_status()
95 struct intel_vgpu *vgpu = execlist->vgpu; in emulate_execlist_status()
97 int ring_id = execlist->ring_id; in emulate_execlist_status()
127 static void emulate_csb_update(struct intel_vgpu_execlist *execlist, in emulate_csb_update() argument
131 struct intel_vgpu *vgpu = execlist->vgpu; in emulate_csb_update()
132 int ring_id = execlist->ring_id; in emulate_csb_update()
184 ring_id_to_context_switch_event(execlist->ring_id)); in emulate_csb_update()
188 struct intel_vgpu_execlist *execlist, in emulate_execlist_ctx_schedule_out() argument
191 struct intel_vgpu *vgpu = execlist->vgpu; in emulate_execlist_ctx_schedule_out()
192 struct intel_vgpu_execlist_slot *running = execlist->running_slot; in emulate_execlist_ctx_schedule_out()
193 struct intel_vgpu_execlist_slot *pending = execlist->pending_slot; in emulate_execlist_ctx_schedule_out()
202 if (WARN_ON(!same_context(ctx, execlist->running_context))) { in emulate_execlist_ctx_schedule_out()
206 execlist->running_context->context_id); in emulate_execlist_ctx_schedule_out()
214 execlist->running_context = ctx1; in emulate_execlist_ctx_schedule_out()
216 emulate_execlist_status(execlist); in emulate_execlist_ctx_schedule_out()
221 emulate_csb_update(execlist, &status, false); in emulate_execlist_ctx_schedule_out()
234 switch_virtual_execlist_slot(execlist); in emulate_execlist_ctx_schedule_out()
236 emulate_execlist_status(execlist); in emulate_execlist_ctx_schedule_out()
242 emulate_csb_update(execlist, &status, false); in emulate_execlist_ctx_schedule_out()
244 emulate_csb_update(execlist, &status, true); in emulate_execlist_ctx_schedule_out()
251 emulate_csb_update(execlist, &status, false); in emulate_execlist_ctx_schedule_out()
262 struct intel_vgpu_execlist *execlist) in get_next_execlist_slot() argument
264 struct intel_vgpu *vgpu = execlist->vgpu; in get_next_execlist_slot()
265 int ring_id = execlist->ring_id; in get_next_execlist_slot()
278 return &execlist->slot[status.execlist_write_pointer]; in get_next_execlist_slot()
281 static int emulate_execlist_schedule_in(struct intel_vgpu_execlist *execlist, in emulate_execlist_schedule_in() argument
284 struct intel_vgpu_execlist_slot *running = execlist->running_slot; in emulate_execlist_schedule_in()
286 get_next_execlist_slot(execlist); in emulate_execlist_schedule_in()
290 struct intel_vgpu *vgpu = execlist->vgpu; in emulate_execlist_schedule_in()
316 execlist->running_slot = slot; in emulate_execlist_schedule_in()
317 execlist->pending_slot = NULL; in emulate_execlist_schedule_in()
318 execlist->running_context = &slot->ctx[0]; in emulate_execlist_schedule_in()
321 execlist->running_slot->index, in emulate_execlist_schedule_in()
322 execlist->running_context->context_id); in emulate_execlist_schedule_in()
324 emulate_execlist_status(execlist); in emulate_execlist_schedule_in()
329 emulate_csb_update(execlist, &status, false); in emulate_execlist_schedule_in()
349 (!same_context(ctx0, execlist->running_context))) || in emulate_execlist_schedule_in()
354 execlist->pending_slot = slot; in emulate_execlist_schedule_in()
355 switch_virtual_execlist_slot(execlist); in emulate_execlist_schedule_in()
357 emulate_execlist_status(execlist); in emulate_execlist_schedule_in()
362 emulate_csb_update(execlist, &status, false); in emulate_execlist_schedule_in()
369 execlist->pending_slot = slot; in emulate_execlist_schedule_in()
370 emulate_execlist_status(execlist); in emulate_execlist_schedule_in()
392 ret = emulate_execlist_schedule_in(&s->execlist[ring_id], ctx); in prepare_execlist_workload()
405 struct intel_vgpu_execlist *execlist = &s->execlist[ring_id]; in complete_execlist_workload() local
433 ret = emulate_execlist_ctx_schedule_out(execlist, &workload->ctx_desc); in complete_execlist_workload()
456 workload->elsp_dwords = s->execlist[ring_id].elsp_dwords; in submit_context()
468 struct intel_vgpu_execlist *execlist = &s->execlist[ring_id]; in intel_vgpu_submit_execlist() local
472 desc[0] = get_desc_from_elsp_dwords(&execlist->elsp_dwords, 0); in intel_vgpu_submit_execlist()
473 desc[1] = get_desc_from_elsp_dwords(&execlist->elsp_dwords, 1); in intel_vgpu_submit_execlist()
511 struct intel_vgpu_execlist *execlist = &s->execlist[ring_id]; in init_vgpu_execlist() local
515 memset(execlist, 0, sizeof(*execlist)); in init_vgpu_execlist()
517 execlist->vgpu = vgpu; in init_vgpu_execlist()
518 execlist->ring_id = ring_id; in init_vgpu_execlist()
519 execlist->slot[0].index = 0; in init_vgpu_execlist()
520 execlist->slot[1].index = 1; in init_vgpu_execlist()