From: Oscar Mateo <oscar.mateo@xxxxxxxxx> This patch should have no functional changes. Signed-off-by: Oscar Mateo <oscar.mateo@xxxxxxxxx> --- drivers/gpu/drm/i915/i915_gem_context.c | 37 +++++++++++---------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index 3cfdfbe..e1c544e 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -360,13 +360,10 @@ void i915_gem_context_reset(struct drm_device *dev) /* Prevent the hardware from restoring the last context (which hung) on * the next switch */ - for (i = 0; i < I915_NUM_RINGS; i++) { + for_each_ring(ring, dev_priv, i) { struct i915_hw_context *dctx; - if (!(INTEL_INFO(dev)->ring_mask & (1<<i))) - continue; /* Do a fake switch to the default context */ - ring = &dev_priv->ring[i]; dctx = ring->default_context; if (WARN_ON(!dctx)) continue; @@ -395,7 +392,8 @@ int i915_gem_context_init(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; struct intel_ring_buffer *ring; - int i; + struct i915_hw_context *default_context; + int unused; if (!HAS_HW_CONTEXTS(dev)) return 0; @@ -412,23 +410,15 @@ int i915_gem_context_init(struct drm_device *dev) return -E2BIG; } - dev_priv->ring[RCS].default_context = - i915_gem_create_context(dev, NULL, USES_PPGTT(dev)); - - if (IS_ERR_OR_NULL(dev_priv->ring[RCS].default_context)) { + default_context = i915_gem_create_context(dev, NULL, USES_PPGTT(dev)); + if (IS_ERR_OR_NULL(default_context)) { DRM_DEBUG_DRIVER("Disabling HW Contexts; create failed %ld\n", - PTR_ERR(dev_priv->ring[RCS].default_context)); - return PTR_ERR(dev_priv->ring[RCS].default_context); + PTR_ERR(default_context)); + return PTR_ERR(default_context); } - for (i = RCS + 1; i < I915_NUM_RINGS; i++) { - if (!(INTEL_INFO(dev)->ring_mask & (1<<i))) - continue; - - ring = &dev_priv->ring[i]; - - /* NB: RCS will hold a ref for all rings */ - ring->default_context = dev_priv->ring[RCS].default_context; + for_each_ring(ring, dev_priv, unused) { + ring->default_context = default_context; } DRM_DEBUG_DRIVER("HW context support initialized\n"); @@ -439,7 +429,8 @@ void i915_gem_context_fini(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; struct i915_hw_context *dctx = dev_priv->ring[RCS].default_context; - int i; + struct intel_ring_buffer *ring; + int unused; if (!HAS_HW_CONTEXTS(dev)) return; @@ -464,11 +455,7 @@ void i915_gem_context_fini(struct drm_device *dev) dev_priv->ring[RCS].last_context = NULL; } - for (i = 0; i < I915_NUM_RINGS; i++) { - struct intel_ring_buffer *ring = &dev_priv->ring[i]; - if (!(INTEL_INFO(dev)->ring_mask & (1<<i))) - continue; - + for_each_ring(ring, dev_priv, unused) { if (ring->last_context) i915_gem_context_unreference(ring->last_context); -- 1.9.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx