|
@@ -897,7 +897,7 @@ int i915_switch_context(struct drm_i915_gem_request *req)
|
|
return do_rcs_switch(req);
|
|
return do_rcs_switch(req);
|
|
}
|
|
}
|
|
|
|
|
|
-static bool engine_has_kernel_context(struct intel_engine_cs *engine)
|
|
|
|
|
|
+static bool engine_has_idle_kernel_context(struct intel_engine_cs *engine)
|
|
{
|
|
{
|
|
struct i915_gem_timeline *timeline;
|
|
struct i915_gem_timeline *timeline;
|
|
|
|
|
|
@@ -913,8 +913,7 @@ static bool engine_has_kernel_context(struct intel_engine_cs *engine)
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
- return (!engine->last_retired_context ||
|
|
|
|
- i915_gem_context_is_kernel(engine->last_retired_context));
|
|
|
|
|
|
+ return intel_engine_has_kernel_context(engine);
|
|
}
|
|
}
|
|
|
|
|
|
int i915_gem_switch_to_kernel_context(struct drm_i915_private *dev_priv)
|
|
int i915_gem_switch_to_kernel_context(struct drm_i915_private *dev_priv)
|
|
@@ -931,7 +930,7 @@ int i915_gem_switch_to_kernel_context(struct drm_i915_private *dev_priv)
|
|
struct drm_i915_gem_request *req;
|
|
struct drm_i915_gem_request *req;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
- if (engine_has_kernel_context(engine))
|
|
|
|
|
|
+ if (engine_has_idle_kernel_context(engine))
|
|
continue;
|
|
continue;
|
|
|
|
|
|
req = i915_gem_request_alloc(engine, dev_priv->kernel_context);
|
|
req = i915_gem_request_alloc(engine, dev_priv->kernel_context);
|