When originally implementing HW contexts it was not clear if we'd
strongly associate a context with a ring. Now it is clear, a context
will not belong to a ring. We've removed all remnants of it's usage. So
drop it completely now.

Signed-off-by: Ben Widawsky <b...@bwidawsk.net>
---
 drivers/gpu/drm/i915/i915_drv.h         | 1 -
 drivers/gpu/drm/i915/i915_gem_context.c | 8 ++------
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 4fbc4ab..fa8a432 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -582,7 +582,6 @@ struct i915_hw_context {
        int id;
        bool is_initialized;
        struct drm_i915_file_private *file_priv;
-       struct intel_ring_buffer *ring;
        struct drm_i915_gem_object *obj;
        struct i915_ctx_hang_stats hang_stats;
 
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c 
b/drivers/gpu/drm/i915/i915_gem_context.c
index 0d6ed19..faddf43 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -166,12 +166,6 @@ create_hw_context(struct drm_device *dev,
                        goto err_out;
        }
 
-       /* The ring associated with the context object is handled by the normal
-        * object tracking code. We give an initial ring value simple to pass an
-        * assertion in the context switch code.
-        */
-       ctx->ring = &dev_priv->ring[RCS];
-
        ret = i915_gem_ppgtt_init(dev, &ctx->ppgtt);
        if (ret)
                goto err_out;
@@ -215,6 +209,7 @@ static int create_default_context(struct drm_i915_private 
*dev_priv,
        BUG_ON(!mutex_is_locked(&dev_priv->dev->struct_mutex));
 
        if (dev_priv->ring[RCS].default_context) {
+               /* NB: RCS will hold a ref for all rings */
                ring->default_context = dev_priv->ring[RCS].default_context;
                return 0;
        }
@@ -378,6 +373,7 @@ void i915_gem_context_fini(struct drm_device *dev)
                if (ring->last_context)
                        i915_gem_context_unreference(ring->last_context);
                ring->default_context = NULL;
+               ring->last_context = NULL;
        }
 
        i915_gem_object_unpin(dctx->obj);
-- 
1.8.3.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to