diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2016-10-28 13:58:56 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2016-10-28 20:53:56 +0100 |
commit | 28176ef4cfa510e5f1498bbf39ff1e4afd0b085d (patch) | |
tree | 65e94485cfbda077bc642d2e7fbf1a2d291a323d /drivers/gpu/drm/i915/i915_gem_timeline.h | |
parent | f6168e330438a264123d2e0b502526f06594bb51 (diff) | |
download | op-kernel-dev-28176ef4cfa510e5f1498bbf39ff1e4afd0b085d.zip op-kernel-dev-28176ef4cfa510e5f1498bbf39ff1e4afd0b085d.tar.gz |
drm/i915: Reserve space in the global seqno during request allocation
A restriction on our global seqno is that they cannot wrap, and that we
cannot use the value 0. This allows us to detect when a request has not
yet been submitted, its global seqno is still 0, and ensures that
hardware semaphores are monotonic as required by older hardware. To
meet these restrictions when we defer the assignment of the global
seqno, we must check that we have an available slot in the global seqno
space during request construction. If that test fails, we wait for all
requests to be completed and reset the hardware back to 0.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161028125858.23563-33-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_timeline.h')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_timeline.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_timeline.h b/drivers/gpu/drm/i915/i915_gem_timeline.h index 767b239..18e6039 100644 --- a/drivers/gpu/drm/i915/i915_gem_timeline.h +++ b/drivers/gpu/drm/i915/i915_gem_timeline.h @@ -55,7 +55,7 @@ struct intel_timeline { struct i915_gem_timeline { struct list_head link; - u32 next_seqno; + atomic_t next_seqno; struct drm_i915_private *i915; const char *name; |