#include "i915_drv.h"
#include "gvt.h"
#define _EL_OFFSET_STATUS …
#define _EL_OFFSET_STATUS_BUF …
#define _EL_OFFSET_STATUS_PTR …
#define execlist_ring_mmio(e, offset) …
#define valid_context(ctx) …
#define same_context(a, b) …
static int context_switch_events[] = …;
static int to_context_switch_event(const struct intel_engine_cs *engine)
{ … }
static void switch_virtual_execlist_slot(struct intel_vgpu_execlist *execlist)
{ … }
static void emulate_execlist_status(struct intel_vgpu_execlist *execlist)
{ … }
static void emulate_csb_update(struct intel_vgpu_execlist *execlist,
struct execlist_context_status_format *status,
bool trigger_interrupt_later)
{ … }
static int emulate_execlist_ctx_schedule_out(
struct intel_vgpu_execlist *execlist,
struct execlist_ctx_descriptor_format *ctx)
{ … }
static struct intel_vgpu_execlist_slot *get_next_execlist_slot(
struct intel_vgpu_execlist *execlist)
{ … }
static int emulate_execlist_schedule_in(struct intel_vgpu_execlist *execlist,
struct execlist_ctx_descriptor_format ctx[2])
{ … }
#define get_desc_from_elsp_dwords(ed, i) …
static int prepare_execlist_workload(struct intel_vgpu_workload *workload)
{ … }
static int complete_execlist_workload(struct intel_vgpu_workload *workload)
{ … }
static int submit_context(struct intel_vgpu *vgpu,
const struct intel_engine_cs *engine,
struct execlist_ctx_descriptor_format *desc,
bool emulate_schedule_in)
{ … }
int intel_vgpu_submit_execlist(struct intel_vgpu *vgpu,
const struct intel_engine_cs *engine)
{ … }
static void init_vgpu_execlist(struct intel_vgpu *vgpu,
const struct intel_engine_cs *engine)
{ … }
static void clean_execlist(struct intel_vgpu *vgpu,
intel_engine_mask_t engine_mask)
{ … }
static void reset_execlist(struct intel_vgpu *vgpu,
intel_engine_mask_t engine_mask)
{ … }
static int init_execlist(struct intel_vgpu *vgpu,
intel_engine_mask_t engine_mask)
{ … }
const struct intel_vgpu_submission_ops intel_vgpu_execlist_submission_ops = …;