forked from Minki/linux
drm/i915: Re-arrange execbuf so context is known before engine
Needed for a following patch. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20190301140404.26690-23-chris@chris-wilson.co.uk Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
d90c06d570
commit
4aa909707b
@ -2312,10 +2312,6 @@ i915_gem_do_execbuffer(struct drm_device *dev,
|
||||
if (args->flags & I915_EXEC_IS_PINNED)
|
||||
eb.batch_flags |= I915_DISPATCH_PINNED;
|
||||
|
||||
eb.engine = eb_select_engine(eb.i915, file, args);
|
||||
if (!eb.engine)
|
||||
return -EINVAL;
|
||||
|
||||
if (args->flags & I915_EXEC_FENCE_IN) {
|
||||
in_fence = sync_file_get_fence(lower_32_bits(args->rsvd2));
|
||||
if (!in_fence)
|
||||
@ -2340,6 +2336,12 @@ i915_gem_do_execbuffer(struct drm_device *dev,
|
||||
if (unlikely(err))
|
||||
goto err_destroy;
|
||||
|
||||
eb.engine = eb_select_engine(eb.i915, file, args);
|
||||
if (!eb.engine) {
|
||||
err = -EINVAL;
|
||||
goto err_engine;
|
||||
}
|
||||
|
||||
/*
|
||||
* Take a local wakeref for preparing to dispatch the execbuf as
|
||||
* we expect to access the hardware fairly frequently in the
|
||||
@ -2505,6 +2507,7 @@ err_unlock:
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
err_rpm:
|
||||
intel_runtime_pm_put(eb.i915, wakeref);
|
||||
err_engine:
|
||||
i915_gem_context_put(eb.ctx);
|
||||
err_destroy:
|
||||
eb_destroy(&eb);
|
||||
|
Loading…
Reference in New Issue
Block a user