diff options
author | Weinan Li | 2018-01-26 08:09:07 +0100 |
---|---|---|
committer | Rodrigo Vivi | 2018-02-06 20:40:59 +0100 |
commit | 7569a06dc80ec05c96783f541fa706ea3bebec79 (patch) | |
tree | 28f69dd7a6cd18ccbe6786662307c5dfba2a21c5 /drivers/gpu/drm/i915/gvt/scheduler.c | |
parent | Merge branch 'linux-4.16' of git://github.com/skeggsb/linux into drm-next (diff) | |
download | kernel-qcow2-linux-7569a06dc80ec05c96783f541fa706ea3bebec79.tar.gz kernel-qcow2-linux-7569a06dc80ec05c96783f541fa706ea3bebec79.tar.xz kernel-qcow2-linux-7569a06dc80ec05c96783f541fa706ea3bebec79.zip |
drm/i915/gvt: refine intel_vgpu_submission_ops as per engine ops
Using per engine ops will be more flexible, here refine sub-ops(init,
clean) as per engine operation align with reset operation. This change also
will be used in next fix patch for VM engine reset.
Cc: Fred Gao <fred.gao@intel.com>
Cc: Zhi Wang <zhi.a.wang@intel.com>
Signed-off-by: Weinan Li <weinan.z.li@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Zhi Wang <zhi.a.wang@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/gvt/scheduler.c')
-rw-r--r-- | drivers/gpu/drm/i915/gvt/scheduler.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c index 0056638b0c16..f0997a2f0513 100644 --- a/drivers/gpu/drm/i915/gvt/scheduler.c +++ b/drivers/gpu/drm/i915/gvt/scheduler.c @@ -991,7 +991,7 @@ void intel_vgpu_clean_submission(struct intel_vgpu *vgpu) { struct intel_vgpu_submission *s = &vgpu->submission; - intel_vgpu_select_submission_ops(vgpu, 0); + intel_vgpu_select_submission_ops(vgpu, ALL_ENGINES, 0); i915_gem_context_put(s->shadow_ctx); kmem_cache_destroy(s->workloads); } @@ -1079,6 +1079,7 @@ out_shadow_ctx: * */ int intel_vgpu_select_submission_ops(struct intel_vgpu *vgpu, + unsigned long engine_mask, unsigned int interface) { struct intel_vgpu_submission *s = &vgpu->submission; @@ -1092,7 +1093,7 @@ int intel_vgpu_select_submission_ops(struct intel_vgpu *vgpu, return -EINVAL; if (s->active) { - s->ops->clean(vgpu); + s->ops->clean(vgpu, engine_mask); s->active = false; gvt_dbg_core("vgpu%d: de-select ops [ %s ] \n", vgpu->id, s->ops->name); @@ -1105,7 +1106,7 @@ int intel_vgpu_select_submission_ops(struct intel_vgpu *vgpu, return 0; } - ret = ops[interface]->init(vgpu); + ret = ops[interface]->init(vgpu, engine_mask); if (ret) return ret; |