summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/gvt/scheduler.c
diff options
context:
space:
mode:
authorZhi Wang2017-09-12 15:51:10 +0200
committerZhenyu Wang2017-11-16 04:46:53 +0100
commit497aa3f5e3bdb6bea5994f7075e2f2df2377d70e (patch)
tree6898fe9353422a7ed3047cf6e3a1e48f373c1f06 /drivers/gpu/drm/i915/gvt/scheduler.c
parentdrm/i915/gvt: Factor out vGPU workload creation/destroy (diff)
downloadkernel-qcow2-linux-497aa3f5e3bdb6bea5994f7075e2f2df2377d70e.tar.gz
kernel-qcow2-linux-497aa3f5e3bdb6bea5994f7075e2f2df2377d70e.tar.xz
kernel-qcow2-linux-497aa3f5e3bdb6bea5994f7075e2f2df2377d70e.zip
drm/i915/gvt: Factor out prepare_workload()
Factor out prepare_workload() for the following re-factor. Signed-off-by: Zhi Wang <zhi.a.wang@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/gvt/scheduler.c')
-rw-r--r--drivers/gpu/drm/i915/gvt/scheduler.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
index 10ccb05d0e8d..3d1435f55c7b 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -325,6 +325,16 @@ err_scan:
return ret;
}
+static int prepare_workload(struct intel_vgpu_workload *workload)
+{
+ int ret = 0;
+
+ if (workload->prepare)
+ ret = workload->prepare(workload);
+
+ return ret;
+}
+
static int dispatch_workload(struct intel_vgpu_workload *workload)
{
struct intel_vgpu *vgpu = workload->vgpu;
@@ -344,12 +354,10 @@ static int dispatch_workload(struct intel_vgpu_workload *workload)
if (ret)
goto out;
- if (workload->prepare) {
- ret = workload->prepare(workload);
- if (ret) {
- engine->context_unpin(engine, shadow_ctx);
- goto out;
- }
+ ret = prepare_workload(workload);
+ if (ret) {
+ engine->context_unpin(engine, shadow_ctx);
+ goto out;
}
out: