Commit ec22f256 authored by Chris Wilson's avatar Chris Wilson

drm/i915/overlay: Stash the kernel context on initialisation

Simplify runtime request creation by storing the context we need to use
during initialisation. This allows us to remove one more hardcoded
engine lookup.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190704200455.14870-1-chris@chris-wilson.co.uk
parent 1ee2ae89
...@@ -175,6 +175,7 @@ struct overlay_registers { ...@@ -175,6 +175,7 @@ struct overlay_registers {
struct intel_overlay { struct intel_overlay {
struct drm_i915_private *i915; struct drm_i915_private *i915;
struct intel_context *context;
struct intel_crtc *crtc; struct intel_crtc *crtc;
struct i915_vma *vma; struct i915_vma *vma;
struct i915_vma *old_vma; struct i915_vma *old_vma;
...@@ -239,9 +240,7 @@ static int intel_overlay_do_wait_request(struct intel_overlay *overlay, ...@@ -239,9 +240,7 @@ static int intel_overlay_do_wait_request(struct intel_overlay *overlay,
static struct i915_request *alloc_request(struct intel_overlay *overlay) static struct i915_request *alloc_request(struct intel_overlay *overlay)
{ {
struct intel_engine_cs *engine = overlay->i915->engine[RCS0]; return i915_request_create(overlay->context);
return i915_request_create(engine->kernel_context);
} }
/* overlay needs to be disable in OCMD reg */ /* overlay needs to be disable in OCMD reg */
...@@ -1359,11 +1358,16 @@ void intel_overlay_setup(struct drm_i915_private *dev_priv) ...@@ -1359,11 +1358,16 @@ void intel_overlay_setup(struct drm_i915_private *dev_priv)
if (!HAS_OVERLAY(dev_priv)) if (!HAS_OVERLAY(dev_priv))
return; return;
if (!HAS_ENGINE(dev_priv, RCS0))
return;
overlay = kzalloc(sizeof(*overlay), GFP_KERNEL); overlay = kzalloc(sizeof(*overlay), GFP_KERNEL);
if (!overlay) if (!overlay)
return; return;
overlay->i915 = dev_priv; overlay->i915 = dev_priv;
overlay->context = dev_priv->engine[RCS0]->kernel_context;
GEM_BUG_ON(!overlay->context);
overlay->color_key = 0x0101fe; overlay->color_key = 0x0101fe;
overlay->color_key_enabled = true; overlay->color_key_enabled = true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment