All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 06/12] drm/i915: Rename request->ring to request->engine
Date: Tue, 24 Nov 2015 15:48:28 +0100	[thread overview]
Message-ID: <20151124144827.GM17050@phenom.ffwll.local> (raw)
In-Reply-To: <1448023432-10726-6-git-send-email-chris@chris-wilson.co.uk>

On Fri, Nov 20, 2015 at 12:43:46PM +0000, Chris Wilson wrote:
> In order to disambiguate between the pointer to the intel_engine_cs
> (called ring) and the intel_ringbuffer (called ringbuf), rename
> s/ring/engine/.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Ah, here we go. Slight amend for the commit message:

"Where known that req is non-NULL replace get_ring() with req->engine too
while at it. And also use dev_priv more while touching code."

With that Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  drivers/gpu/drm/i915/i915_debugfs.c          |  11 ++-
>  drivers/gpu/drm/i915/i915_drv.h              |  12 +--
>  drivers/gpu/drm/i915/i915_gem.c              |  76 ++++++++--------
>  drivers/gpu/drm/i915/i915_gem_context.c      |  63 ++++++-------
>  drivers/gpu/drm/i915/i915_gem_execbuffer.c   |   8 +-
>  drivers/gpu/drm/i915/i915_gem_gtt.c          |  49 +++++-----
>  drivers/gpu/drm/i915/i915_gem_render_state.c |  18 ++--
>  drivers/gpu/drm/i915/i915_gpu_error.c        |   3 +-
>  drivers/gpu/drm/i915/i915_trace.h            |  34 +++----
>  drivers/gpu/drm/i915/intel_display.c         |  12 +--
>  drivers/gpu/drm/i915/intel_lrc.c             | 128 +++++++++++++--------------
>  drivers/gpu/drm/i915/intel_mocs.c            |  10 +--
>  drivers/gpu/drm/i915/intel_ringbuffer.c      |  66 +++++++-------
>  13 files changed, 239 insertions(+), 251 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 359436162f3d..56375c36b381 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -190,8 +190,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
>  		seq_printf(m, " (%s mappable)", s);
>  	}
>  	if (obj->last_write_req != NULL)
> -		seq_printf(m, " (%s)",
> -			   i915_gem_request_get_ring(obj->last_write_req)->name);
> +		seq_printf(m, " (%s)", obj->last_write_req->engine->name);
>  	if (obj->frontbuffer_bits)
>  		seq_printf(m, " (frontbuffer: 0x%03x)", obj->frontbuffer_bits);
>  }
> @@ -594,14 +593,14 @@ static int i915_gem_pageflip_info(struct seq_file *m, void *data)
>  					   pipe, plane);
>  			}
>  			if (work->flip_queued_req) {
> -				struct intel_engine_cs *ring =
> -					i915_gem_request_get_ring(work->flip_queued_req);
> +				struct intel_engine_cs *engine =
> +					work->flip_queued_req->engine;
>  
>  				seq_printf(m, "Flip queued on %s at seqno %x, next seqno %x [current breadcrumb %x], completed? %d\n",
> -					   ring->name,
> +					   engine->name,
>  					   i915_gem_request_get_seqno(work->flip_queued_req),
>  					   dev_priv->next_seqno,
> -					   ring->get_seqno(ring, true),
> +					   engine->get_seqno(engine, true),
>  					   i915_gem_request_completed(work->flip_queued_req, true));
>  			} else
>  				seq_printf(m, "Flip not associated with any ring\n");
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index fadf2ceb1f72..9ce8b3fcb3a0 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2156,7 +2156,7 @@ struct drm_i915_gem_request {
>  
>  	/** On Which ring this request was generated */
>  	struct drm_i915_private *i915;
> -	struct intel_engine_cs *ring;
> +	struct intel_engine_cs *engine;
>  
>  	/** GEM sequence number associated with this request. */
>  	uint32_t seqno;
> @@ -2240,9 +2240,9 @@ i915_gem_request_get_seqno(struct drm_i915_gem_request *req)
>  }
>  
>  static inline struct intel_engine_cs *
> -i915_gem_request_get_ring(struct drm_i915_gem_request *req)
> +i915_gem_request_get_engine(struct drm_i915_gem_request *req)
>  {
> -	return req ? req->ring : NULL;
> +	return req ? req->engine : NULL;
>  }
>  
>  static inline struct drm_i915_gem_request *
> @@ -2256,7 +2256,7 @@ i915_gem_request_reference(struct drm_i915_gem_request *req)
>  static inline void
>  i915_gem_request_unreference(struct drm_i915_gem_request *req)
>  {
> -	WARN_ON(!mutex_is_locked(&req->ring->dev->struct_mutex));
> +	WARN_ON(!mutex_is_locked(&req->i915->dev->struct_mutex));
>  	kref_put(&req->ref, i915_gem_request_free);
>  }
>  
> @@ -2268,7 +2268,7 @@ i915_gem_request_unreference__unlocked(struct drm_i915_gem_request *req)
>  	if (!req)
>  		return;
>  
> -	dev = req->ring->dev;
> +	dev = req->i915->dev;
>  	if (kref_put_mutex(&req->ref, i915_gem_request_free, &dev->struct_mutex))
>  		mutex_unlock(&dev->struct_mutex);
>  }
> @@ -2877,7 +2877,7 @@ static inline bool i915_gem_request_completed(struct drm_i915_gem_request *req,
>  
>  	BUG_ON(req == NULL);
>  
> -	seqno = req->ring->get_seqno(req->ring, lazy_coherency);
> +	seqno = req->engine->get_seqno(req->engine, lazy_coherency);
>  
>  	return i915_seqno_passed(seqno, req->seqno);
>  }
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 030fc9d14385..5a1b51a27fe3 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1174,7 +1174,7 @@ static int __i915_spin_request(struct drm_i915_gem_request *req, int state)
>  	u64 timeout;
>  	unsigned cpu;
>  
> -	if (i915_gem_request_get_ring(req)->irq_refcount)
> +	if (req->engine->irq_refcount)
>  		return -EBUSY;
>  
>  	timeout = local_clock_us(&cpu) + 2;
> @@ -1220,10 +1220,10 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>  			s64 *timeout,
>  			struct intel_rps_client *rps)
>  {
> -	struct intel_engine_cs *ring = i915_gem_request_get_ring(req);
> +	struct intel_engine_cs *engine = req->engine;
>  	struct drm_i915_private *dev_priv = req->i915;
>  	const bool irq_test_in_progress =
> -		ACCESS_ONCE(dev_priv->gpu_error.test_irq_rings) & intel_ring_flag(ring);
> +		ACCESS_ONCE(dev_priv->gpu_error.test_irq_rings) & intel_ring_flag(engine);
>  	int state = interruptible ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE;
>  	DEFINE_WAIT(wait);
>  	unsigned long timeout_expire;
> @@ -1252,7 +1252,7 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>  	if (ret == 0)
>  		goto out;
>  
> -	if (!irq_test_in_progress && WARN_ON(!ring->irq_get(ring))) {
> +	if (!irq_test_in_progress && WARN_ON(!engine->irq_get(engine))) {
>  		ret = -ENODEV;
>  		goto out;
>  	}
> @@ -1260,7 +1260,7 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>  	for (;;) {
>  		struct timer_list timer;
>  
> -		prepare_to_wait(&ring->irq_queue, &wait, state);
> +		prepare_to_wait(&engine->irq_queue, &wait, state);
>  
>  		/* We need to check whether any gpu reset happened in between
>  		 * the caller grabbing the seqno and now ... */
> @@ -1289,11 +1289,11 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>  		}
>  
>  		timer.function = NULL;
> -		if (timeout || missed_irq(dev_priv, ring)) {
> +		if (timeout || missed_irq(dev_priv, engine)) {
>  			unsigned long expire;
>  
>  			setup_timer_on_stack(&timer, fake_irq, (unsigned long)current);
> -			expire = missed_irq(dev_priv, ring) ? jiffies + 1 : timeout_expire;
> +			expire = missed_irq(dev_priv, engine) ? jiffies + 1 : timeout_expire;
>  			mod_timer(&timer, expire);
>  		}
>  
> @@ -1305,9 +1305,9 @@ int __i915_wait_request(struct drm_i915_gem_request *req,
>  		}
>  	}
>  	if (!irq_test_in_progress)
> -		ring->irq_put(ring);
> +		engine->irq_put(engine);
>  
> -	finish_wait(&ring->irq_queue, &wait);
> +	finish_wait(&engine->irq_queue, &wait);
>  
>  out:
>  	now = ktime_get_raw_ns();
> @@ -1397,7 +1397,7 @@ static void i915_gem_request_retire(struct drm_i915_gem_request *request)
>  static void
>  __i915_gem_request_retire__upto(struct drm_i915_gem_request *req)
>  {
> -	struct intel_engine_cs *engine = req->ring;
> +	struct intel_engine_cs *engine = req->engine;
>  	struct drm_i915_gem_request *tmp;
>  
>  	lockdep_assert_held(&engine->dev->struct_mutex);
> @@ -1466,7 +1466,7 @@ i915_gem_object_wait_rendering(struct drm_i915_gem_object *obj,
>  			if (ret)
>  				return ret;
>  
> -			i = obj->last_write_req->ring->id;
> +			i = obj->last_write_req->engine->id;
>  			if (obj->last_read_req[i] == obj->last_write_req)
>  				i915_gem_object_retire__read(obj, i);
>  			else
> @@ -1493,7 +1493,7 @@ static void
>  i915_gem_object_retire_request(struct drm_i915_gem_object *obj,
>  			       struct drm_i915_gem_request *req)
>  {
> -	int ring = req->ring->id;
> +	int ring = req->engine->id;
>  
>  	if (obj->last_read_req[ring] == req)
>  		i915_gem_object_retire__read(obj, ring);
> @@ -2415,17 +2415,15 @@ void i915_vma_move_to_active(struct i915_vma *vma,
>  			     struct drm_i915_gem_request *req)
>  {
>  	struct drm_i915_gem_object *obj = vma->obj;
> -	struct intel_engine_cs *ring;
> -
> -	ring = i915_gem_request_get_ring(req);
> +	struct intel_engine_cs *engine = req->engine;;
>  
>  	/* Add a reference if we're newly entering the active list. */
>  	if (obj->active == 0)
>  		drm_gem_object_reference(&obj->base);
> -	obj->active |= intel_ring_flag(ring);
> +	obj->active |= intel_ring_flag(engine);
>  
> -	list_move_tail(&obj->ring_list[ring->id], &ring->active_list);
> -	i915_gem_request_assign(&obj->last_read_req[ring->id], req);
> +	list_move_tail(&obj->ring_list[engine->id], &engine->active_list);
> +	i915_gem_request_assign(&obj->last_read_req[engine->id], req);
>  
>  	list_move_tail(&vma->mm_list, &vma->vm->active_list);
>  }
> @@ -2434,7 +2432,7 @@ static void
>  i915_gem_object_retire__write(struct drm_i915_gem_object *obj)
>  {
>  	RQ_BUG_ON(obj->last_write_req == NULL);
> -	RQ_BUG_ON(!(obj->active & intel_ring_flag(obj->last_write_req->ring)));
> +	RQ_BUG_ON(!(obj->active & intel_ring_flag(obj->last_write_req->engine)));
>  
>  	i915_gem_request_assign(&obj->last_write_req, NULL);
>  	intel_fb_obj_flush(obj, true, ORIGIN_CS);
> @@ -2451,7 +2449,7 @@ i915_gem_object_retire__read(struct drm_i915_gem_object *obj, int ring)
>  	list_del_init(&obj->ring_list[ring]);
>  	i915_gem_request_assign(&obj->last_read_req[ring], NULL);
>  
> -	if (obj->last_write_req && obj->last_write_req->ring->id == ring)
> +	if (obj->last_write_req && obj->last_write_req->engine->id == ring)
>  		i915_gem_object_retire__write(obj);
>  
>  	obj->active &= ~(1 << ring);
> @@ -2553,7 +2551,7 @@ void __i915_add_request(struct drm_i915_gem_request *request,
>  			struct drm_i915_gem_object *obj,
>  			bool flush_caches)
>  {
> -	struct intel_engine_cs *ring;
> +	struct intel_engine_cs *engine;
>  	struct drm_i915_private *dev_priv;
>  	struct intel_ringbuffer *ringbuf;
>  	u32 request_start;
> @@ -2562,7 +2560,7 @@ void __i915_add_request(struct drm_i915_gem_request *request,
>  	if (WARN_ON(request == NULL))
>  		return;
>  
> -	ring = request->ring;
> +	engine = request->engine;
>  	dev_priv = request->i915;
>  	ringbuf = request->ringbuf;
>  
> @@ -2598,9 +2596,9 @@ void __i915_add_request(struct drm_i915_gem_request *request,
>  	request->postfix = intel_ring_get_tail(ringbuf);
>  
>  	if (i915.enable_execlists)
> -		ret = ring->emit_request(request);
> +		ret = engine->emit_request(request);
>  	else {
> -		ret = ring->add_request(request);
> +		ret = engine->add_request(request);
>  
>  		request->tail = intel_ring_get_tail(ringbuf);
>  	}
> @@ -2618,12 +2616,12 @@ void __i915_add_request(struct drm_i915_gem_request *request,
>  	request->batch_obj = obj;
>  
>  	request->emitted_jiffies = jiffies;
> -	ring->last_submitted_seqno = request->seqno;
> -	list_add_tail(&request->list, &ring->request_list);
> +	engine->last_submitted_seqno = request->seqno;
> +	list_add_tail(&request->list, &engine->request_list);
>  
>  	trace_i915_gem_request_add(request);
>  
> -	i915_queue_hangcheck(ring->dev);
> +	i915_queue_hangcheck(engine->dev);
>  
>  	queue_delayed_work(dev_priv->wq,
>  			   &dev_priv->mm.retire_work,
> @@ -2690,7 +2688,7 @@ void i915_gem_request_free(struct kref *req_ref)
>  
>  	if (ctx) {
>  		if (i915.enable_execlists) {
> -			if (ctx != req->ring->default_context)
> +			if (ctx != req->engine->default_context)
>  				intel_lr_context_unpin(req);
>  		}
>  
> @@ -2700,11 +2698,11 @@ void i915_gem_request_free(struct kref *req_ref)
>  	kmem_cache_free(req->i915->requests, req);
>  }
>  
> -int i915_gem_request_alloc(struct intel_engine_cs *ring,
> +int i915_gem_request_alloc(struct intel_engine_cs *engine,
>  			   struct intel_context *ctx,
>  			   struct drm_i915_gem_request **req_out)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(ring->dev);
> +	struct drm_i915_private *dev_priv = to_i915(engine->dev);
>  	struct drm_i915_gem_request *req;
>  	int ret;
>  
> @@ -2717,13 +2715,13 @@ int i915_gem_request_alloc(struct intel_engine_cs *ring,
>  	if (req == NULL)
>  		return -ENOMEM;
>  
> -	ret = i915_gem_get_seqno(ring->dev, &req->seqno);
> +	ret = i915_gem_get_seqno(engine->dev, &req->seqno);
>  	if (ret)
>  		goto err;
>  
>  	kref_init(&req->ref);
>  	req->i915 = dev_priv;
> -	req->ring = ring;
> +	req->engine = engine;
>  	req->ctx  = ctx;
>  	i915_gem_context_reference(req->ctx);
>  
> @@ -3137,7 +3135,7 @@ __i915_gem_object_sync(struct drm_i915_gem_object *obj,
>  	struct intel_engine_cs *from;
>  	int ret;
>  
> -	from = i915_gem_request_get_ring(from_req);
> +	from = from_req->engine;
>  	if (to == from)
>  		return 0;
>  
> @@ -4308,7 +4306,7 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data,
>  	BUILD_BUG_ON(I915_NUM_RINGS > 16);
>  	args->busy = obj->active << 16;
>  	if (obj->last_write_req)
> -		args->busy |= obj->last_write_req->ring->id;
> +		args->busy |= obj->last_write_req->engine->id;
>  
>  unref:
>  	drm_gem_object_unreference(&obj->base);
> @@ -4641,7 +4639,6 @@ err:
>  
>  int i915_gem_l3_remap(struct drm_i915_gem_request *req, int slice)
>  {
> -	struct intel_ringbuffer *ring = req->ringbuf;
>  	struct drm_i915_private *dev_priv = req->i915;
>  	u32 reg_base = GEN7_L3LOG_BASE + (slice * 0x200);
>  	u32 *remap_info = dev_priv->l3_parity.remap_info[slice];
> @@ -4660,12 +4657,11 @@ int i915_gem_l3_remap(struct drm_i915_gem_request *req, int slice)
>  	 * at initialization time.
>  	 */
>  	for (i = 0; i < GEN7_L3LOG_SIZE; i += 4) {
> -		intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1));
> -		intel_ring_emit(ring, reg_base + i);
> -		intel_ring_emit(ring, remap_info[i/4]);
> +		intel_ring_emit(req->ringbuf, MI_LOAD_REGISTER_IMM(1));
> +		intel_ring_emit(req->ringbuf, reg_base + i);
> +		intel_ring_emit(req->ringbuf, remap_info[i/4]);
>  	}
> -
> -	intel_ring_advance(ring);
> +	intel_ring_advance(req->ringbuf);
>  
>  	return ret;
>  }
> diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
> index c3adc121aab4..047c2f94bd22 100644
> --- a/drivers/gpu/drm/i915/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/i915_gem_context.c
> @@ -410,14 +410,14 @@ void i915_gem_context_fini(struct drm_device *dev)
>  
>  int i915_gem_context_enable(struct drm_i915_gem_request *req)
>  {
> -	struct intel_engine_cs *ring = req->ring;
> +	struct intel_engine_cs *engine = req->engine;
>  	int ret;
>  
>  	if (i915.enable_execlists) {
> -		if (ring->init_context == NULL)
> +		if (engine->init_context == NULL)
>  			return 0;
>  
> -		ret = ring->init_context(req);
> +		ret = engine->init_context(req);
>  	} else
>  		ret = i915_switch_context(req);
>  
> @@ -494,7 +494,7 @@ mi_set_context(struct drm_i915_gem_request *req, u32 hw_flags)
>  	 * itlb_before_ctx_switch.
>  	 */
>  	if (IS_GEN6(req->i915)) {
> -		ret = req->ring->flush(req, I915_GEM_GPU_DOMAINS, 0);
> +		ret = req->engine->flush(req, I915_GEM_GPU_DOMAINS, 0);
>  		if (ret)
>  			return ret;
>  	}
> @@ -522,7 +522,7 @@ mi_set_context(struct drm_i915_gem_request *req, u32 hw_flags)
>  
>  			intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(num_rings));
>  			for_each_ring(signaller, req->i915, i) {
> -				if (signaller == req->ring)
> +				if (signaller == req->engine)
>  					continue;
>  
>  				intel_ring_emit(ring, RING_PSMI_CTL(signaller->mmio_base));
> @@ -547,7 +547,7 @@ mi_set_context(struct drm_i915_gem_request *req, u32 hw_flags)
>  
>  			intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(num_rings));
>  			for_each_ring(signaller, req->i915, i) {
> -				if (signaller == req->ring)
> +				if (signaller == req->engine)
>  					continue;
>  
>  				intel_ring_emit(ring, RING_PSMI_CTL(signaller->mmio_base));
> @@ -618,19 +618,19 @@ needs_pd_load_post(struct intel_engine_cs *ring, struct intel_context *to,
>  static int do_switch(struct drm_i915_gem_request *req)
>  {
>  	struct intel_context *to = req->ctx;
> -	struct intel_engine_cs *ring = req->ring;
> -	struct intel_context *from = ring->last_context;
> +	struct intel_engine_cs *engine = req->engine;
> +	struct intel_context *from = engine->last_context;
>  	u32 hw_flags = 0;
>  	bool uninitialized = false;
>  	int ret, i;
>  
> -	if (should_skip_switch(ring, from, to))
> +	if (should_skip_switch(engine, from, to))
>  		return 0;
>  
>  	/* Trying to pin first makes error handling easier. */
> -	if (ring->id == RCS) {
> +	if (engine->id == RCS) {
>  		ret = i915_gem_obj_ggtt_pin(to->legacy_hw_ctx.rcs_state,
> -					    get_context_alignment(ring->dev), 0);
> +					    get_context_alignment(engine->dev), 0);
>  		if (ret)
>  			return ret;
>  	}
> @@ -640,23 +640,23 @@ static int do_switch(struct drm_i915_gem_request *req)
>  	 * evict_everything - as a last ditch gtt defrag effort that also
>  	 * switches to the default context. Hence we need to reload from here.
>  	 */
> -	from = ring->last_context;
> +	from = engine->last_context;
>  
> -	if (needs_pd_load_pre(ring, to)) {
> +	if (needs_pd_load_pre(engine, to)) {
>  		/* Older GENs and non render rings still want the load first,
>  		 * "PP_DCLV followed by PP_DIR_BASE register through Load
>  		 * Register Immediate commands in Ring Buffer before submitting
>  		 * a context."*/
> -		trace_switch_mm(ring, to);
> +		trace_switch_mm(engine, to);
>  		ret = to->ppgtt->switch_mm(to->ppgtt, req);
>  		if (ret)
>  			goto unpin_out;
>  
>  		/* Doing a PD load always reloads the page dirs */
> -		to->ppgtt->pd_dirty_rings &= ~intel_ring_flag(ring);
> +		to->ppgtt->pd_dirty_rings &= ~intel_ring_flag(engine);
>  	}
>  
> -	if (ring->id != RCS) {
> +	if (engine->id != RCS) {
>  		if (from)
>  			i915_gem_context_unreference(from);
>  		goto done;
> @@ -681,14 +681,14 @@ static int do_switch(struct drm_i915_gem_request *req)
>  		 * space. This means we must enforce that a page table load
>  		 * occur when this occurs. */
>  	} else if (to->ppgtt &&
> -		   (intel_ring_flag(ring) & to->ppgtt->pd_dirty_rings)) {
> +		   (intel_ring_flag(engine) & to->ppgtt->pd_dirty_rings)) {
>  		hw_flags |= MI_FORCE_RESTORE;
> -		to->ppgtt->pd_dirty_rings &= ~intel_ring_flag(ring);
> +		to->ppgtt->pd_dirty_rings &= ~intel_ring_flag(engine);
>  	}
>  
>  	/* We should never emit switch_mm more than once */
> -	WARN_ON(needs_pd_load_pre(ring, to) &&
> -		needs_pd_load_post(ring, to, hw_flags));
> +	WARN_ON(needs_pd_load_pre(engine, to) &&
> +		needs_pd_load_post(engine, to, hw_flags));
>  
>  	ret = mi_set_context(req, hw_flags);
>  	if (ret)
> @@ -697,8 +697,8 @@ static int do_switch(struct drm_i915_gem_request *req)
>  	/* GEN8 does *not* require an explicit reload if the PDPs have been
>  	 * setup, and we do not wish to move them.
>  	 */
> -	if (needs_pd_load_post(ring, to, hw_flags)) {
> -		trace_switch_mm(ring, to);
> +	if (needs_pd_load_post(engine, to, hw_flags)) {
> +		trace_switch_mm(engine, to);
>  		ret = to->ppgtt->switch_mm(to->ppgtt, req);
>  		/* The hardware context switch is emitted, but we haven't
>  		 * actually changed the state - so it's probably safe to bail
> @@ -751,11 +751,11 @@ static int do_switch(struct drm_i915_gem_request *req)
>  
>  done:
>  	i915_gem_context_reference(to);
> -	ring->last_context = to;
> +	engine->last_context = to;
>  
>  	if (uninitialized) {
> -		if (ring->init_context) {
> -			ret = ring->init_context(req);
> +		if (engine->init_context) {
> +			ret = engine->init_context(req);
>  			if (ret)
>  				DRM_ERROR("ring init context: %d\n", ret);
>  		}
> @@ -764,7 +764,7 @@ done:
>  	return 0;
>  
>  unpin_out:
> -	if (ring->id == RCS)
> +	if (engine->id == RCS)
>  		i915_gem_object_ggtt_unpin(to->legacy_hw_ctx.rcs_state);
>  	return ret;
>  }
> @@ -784,17 +784,18 @@ unpin_out:
>   */
>  int i915_switch_context(struct drm_i915_gem_request *req)
>  {
> -	struct intel_engine_cs *ring = req->ring;
>  
>  	WARN_ON(i915.enable_execlists);
>  	WARN_ON(!mutex_is_locked(&req->i915->dev->struct_mutex));
>  
>  	if (req->ctx->legacy_hw_ctx.rcs_state == NULL) { /* We have the fake context */
> -		if (req->ctx != ring->last_context) {
> +		struct intel_engine_cs *engine = req->engine;
> +
> +		if (req->ctx != engine->last_context) {
>  			i915_gem_context_reference(req->ctx);
> -			if (ring->last_context)
> -				i915_gem_context_unreference(ring->last_context);
> -			ring->last_context = req->ctx;
> +			if (engine->last_context)
> +				i915_gem_context_unreference(engine->last_context);
> +			engine->last_context = req->ctx;
>  		}
>  		return 0;
>  	}
> diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> index 5f1b9b7df051..32c2d08bdd4c 100644
> --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> @@ -922,7 +922,7 @@ static int
>  i915_gem_execbuffer_move_to_gpu(struct drm_i915_gem_request *req,
>  				struct list_head *vmas)
>  {
> -	const unsigned other_rings = ~intel_ring_flag(req->ring);
> +	const unsigned other_rings = ~intel_ring_flag(req->engine);
>  	struct i915_vma *vma;
>  	uint32_t flush_domains = 0;
>  	bool flush_chipset = false;
> @@ -932,7 +932,7 @@ i915_gem_execbuffer_move_to_gpu(struct drm_i915_gem_request *req,
>  		struct drm_i915_gem_object *obj = vma->obj;
>  
>  		if (obj->active & other_rings) {
> -			ret = i915_gem_object_sync(obj, req->ring, &req);
> +			ret = i915_gem_object_sync(obj, req->engine, &req);
>  			if (ret)
>  				return ret;
>  		}
> @@ -944,7 +944,7 @@ i915_gem_execbuffer_move_to_gpu(struct drm_i915_gem_request *req,
>  	}
>  
>  	if (flush_chipset)
> -		i915_gem_chipset_flush(req->ring->dev);
> +		i915_gem_chipset_flush(req->engine->dev);
>  
>  	if (flush_domains & I915_GEM_DOMAIN_GTT)
>  		wmb();
> @@ -1118,7 +1118,7 @@ i915_reset_gen7_sol_offsets(struct drm_i915_gem_request *req)
>  	struct intel_ringbuffer *ring = req->ringbuf;
>  	int ret, i;
>  
> -	if (!IS_GEN7(req->i915) || req->ring->id != RCS) {
> +	if (!IS_GEN7(req->i915) || req->engine->id != RCS) {
>  		DRM_DEBUG("sol reset is gen7/rcs only\n");
>  		return -EINVAL;
>  	}
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 4608884adfc8..c222456961fb 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -661,10 +661,10 @@ static int gen8_write_pdp(struct drm_i915_gem_request *req,
>  		return ret;
>  
>  	intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1));
> -	intel_ring_emit(ring, GEN8_RING_PDP_UDW(req->ring, entry));
> +	intel_ring_emit(ring, GEN8_RING_PDP_UDW(req->engine, entry));
>  	intel_ring_emit(ring, upper_32_bits(addr));
>  	intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1));
> -	intel_ring_emit(ring, GEN8_RING_PDP_LDW(req->ring, entry));
> +	intel_ring_emit(ring, GEN8_RING_PDP_LDW(req->engine, entry));
>  	intel_ring_emit(ring, lower_32_bits(addr));
>  	intel_ring_advance(ring);
>  
> @@ -1592,7 +1592,9 @@ static int hsw_mm_switch(struct i915_hw_ppgtt *ppgtt,
>  	int ret;
>  
>  	/* NB: TLBs must be flushed and invalidated before a switch */
> -	ret = req->ring->flush(req, I915_GEM_GPU_DOMAINS, I915_GEM_GPU_DOMAINS);
> +	ret = req->engine->flush(req,
> +				 I915_GEM_GPU_DOMAINS,
> +				 I915_GEM_GPU_DOMAINS);
>  	if (ret)
>  		return ret;
>  
> @@ -1601,9 +1603,9 @@ static int hsw_mm_switch(struct i915_hw_ppgtt *ppgtt,
>  		return ret;
>  
>  	intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(2));
> -	intel_ring_emit(ring, RING_PP_DIR_DCLV(req->ring));
> +	intel_ring_emit(ring, RING_PP_DIR_DCLV(req->engine));
>  	intel_ring_emit(ring, PP_DIR_DCLV_2G);
> -	intel_ring_emit(ring, RING_PP_DIR_BASE(req->ring));
> +	intel_ring_emit(ring, RING_PP_DIR_BASE(req->engine));
>  	intel_ring_emit(ring, get_pd_offset(ppgtt));
>  	intel_ring_emit(ring, MI_NOOP);
>  	intel_ring_advance(ring);
> @@ -1614,11 +1616,10 @@ static int hsw_mm_switch(struct i915_hw_ppgtt *ppgtt,
>  static int vgpu_mm_switch(struct i915_hw_ppgtt *ppgtt,
>  			  struct drm_i915_gem_request *req)
>  {
> -	struct intel_engine_cs *ring = req->ring;
> -	struct drm_i915_private *dev_priv = to_i915(ppgtt->base.dev);
> +	struct drm_i915_private *dev_priv = req->i915;
>  
> -	I915_WRITE(RING_PP_DIR_DCLV(ring), PP_DIR_DCLV_2G);
> -	I915_WRITE(RING_PP_DIR_BASE(ring), get_pd_offset(ppgtt));
> +	I915_WRITE(RING_PP_DIR_DCLV(req->engine), PP_DIR_DCLV_2G);
> +	I915_WRITE(RING_PP_DIR_BASE(req->engine), get_pd_offset(ppgtt));
>  	return 0;
>  }
>  
> @@ -1629,7 +1630,9 @@ static int gen7_mm_switch(struct i915_hw_ppgtt *ppgtt,
>  	int ret;
>  
>  	/* NB: TLBs must be flushed and invalidated before a switch */
> -	ret = req->ring->flush(req, I915_GEM_GPU_DOMAINS, I915_GEM_GPU_DOMAINS);
> +	ret = req->engine->flush(req,
> +				 I915_GEM_GPU_DOMAINS,
> +				 I915_GEM_GPU_DOMAINS);
>  	if (ret)
>  		return ret;
>  
> @@ -1638,16 +1641,18 @@ static int gen7_mm_switch(struct i915_hw_ppgtt *ppgtt,
>  		return ret;
>  
>  	intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(2));
> -	intel_ring_emit(ring, RING_PP_DIR_DCLV(req->ring));
> +	intel_ring_emit(ring, RING_PP_DIR_DCLV(req->engine));
>  	intel_ring_emit(ring, PP_DIR_DCLV_2G);
> -	intel_ring_emit(ring, RING_PP_DIR_BASE(req->ring));
> +	intel_ring_emit(ring, RING_PP_DIR_BASE(req->engine));
>  	intel_ring_emit(ring, get_pd_offset(ppgtt));
>  	intel_ring_emit(ring, MI_NOOP);
>  	intel_ring_advance(ring);
>  
>  	/* XXX: RCS is the only one to auto invalidate the TLBs? */
> -	if (req->ring->id != RCS) {
> -		ret = req->ring->flush(req, I915_GEM_GPU_DOMAINS, I915_GEM_GPU_DOMAINS);
> +	if (req->engine->id != RCS) {
> +		ret = req->engine->flush(req,
> +					 I915_GEM_GPU_DOMAINS,
> +					 I915_GEM_GPU_DOMAINS);
>  		if (ret)
>  			return ret;
>  	}
> @@ -1658,15 +1663,12 @@ static int gen7_mm_switch(struct i915_hw_ppgtt *ppgtt,
>  static int gen6_mm_switch(struct i915_hw_ppgtt *ppgtt,
>  			  struct drm_i915_gem_request *req)
>  {
> -	struct intel_engine_cs *ring = req->ring;
> -	struct drm_device *dev = ppgtt->base.dev;
> -	struct drm_i915_private *dev_priv = dev->dev_private;
> -
> +	struct drm_i915_private *dev_priv = req->i915;
>  
> -	I915_WRITE(RING_PP_DIR_DCLV(ring), PP_DIR_DCLV_2G);
> -	I915_WRITE(RING_PP_DIR_BASE(ring), get_pd_offset(ppgtt));
> +	I915_WRITE(RING_PP_DIR_DCLV(req->engine), PP_DIR_DCLV_2G);
> +	I915_WRITE(RING_PP_DIR_BASE(req->engine), get_pd_offset(ppgtt));
>  
> -	POSTING_READ(RING_PP_DIR_DCLV(ring));
> +	POSTING_READ(RING_PP_DIR_DCLV(req->engine));
>  
>  	return 0;
>  }
> @@ -2101,8 +2103,7 @@ int i915_ppgtt_init_hw(struct drm_device *dev)
>  
>  int i915_ppgtt_init_ring(struct drm_i915_gem_request *req)
>  {
> -	struct drm_i915_private *dev_priv = req->ring->dev->dev_private;
> -	struct i915_hw_ppgtt *ppgtt = dev_priv->mm.aliasing_ppgtt;
> +	struct i915_hw_ppgtt *ppgtt = req->i915->mm.aliasing_ppgtt;
>  	int ret;
>  
>  	if (i915.enable_execlists)
> @@ -2115,7 +2116,7 @@ int i915_ppgtt_init_ring(struct drm_i915_gem_request *req)
>  	if (ret)
>  		return ret;
>  
> -	ppgtt->pd_dirty_rings &= ~intel_ring_flag(req->ring);
> +	ppgtt->pd_dirty_rings &= ~intel_ring_flag(req->engine);
>  	return 0;
>  }
>  
> diff --git a/drivers/gpu/drm/i915/i915_gem_render_state.c b/drivers/gpu/drm/i915/i915_gem_render_state.c
> index 5026a6267a88..f11e8685b1af 100644
> --- a/drivers/gpu/drm/i915/i915_gem_render_state.c
> +++ b/drivers/gpu/drm/i915/i915_gem_render_state.c
> @@ -198,25 +198,25 @@ int i915_gem_render_state_init(struct drm_i915_gem_request *req)
>  	struct render_state so;
>  	int ret;
>  
> -	ret = i915_gem_render_state_prepare(req->ring, &so);
> +	ret = i915_gem_render_state_prepare(req->engine, &so);
>  	if (ret)
>  		return ret;
>  
>  	if (so.rodata == NULL)
>  		return 0;
>  
> -	ret = req->ring->dispatch_execbuffer(req, so.ggtt_offset,
> -					     so.rodata->batch_items * 4,
> -					     I915_DISPATCH_SECURE);
> +	ret = req->engine->dispatch_execbuffer(req, so.ggtt_offset,
> +					       so.rodata->batch_items * 4,
> +					       I915_DISPATCH_SECURE);
>  	if (ret)
>  		goto out;
>  
>  	if (so.aux_batch_size > 8) {
> -		ret = req->ring->dispatch_execbuffer(req,
> -						     (so.ggtt_offset +
> -						      so.aux_batch_offset),
> -						     so.aux_batch_size,
> -						     I915_DISPATCH_SECURE);
> +		ret = req->engine->dispatch_execbuffer(req,
> +						       (so.ggtt_offset +
> +							so.aux_batch_offset),
> +						       so.aux_batch_size,
> +						       I915_DISPATCH_SECURE);
>  		if (ret)
>  			goto out;
>  	}
> diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
> index d8e035e126d7..974e3481e449 100644
> --- a/drivers/gpu/drm/i915/i915_gpu_error.c
> +++ b/drivers/gpu/drm/i915/i915_gpu_error.c
> @@ -709,8 +709,7 @@ static void capture_bo(struct drm_i915_error_buffer *err,
>  	err->dirty = obj->dirty;
>  	err->purgeable = obj->madv != I915_MADV_WILLNEED;
>  	err->userptr = obj->userptr.mm != NULL;
> -	err->ring = obj->last_write_req ?
> -			i915_gem_request_get_ring(obj->last_write_req)->id : -1;
> +	err->ring = obj->last_write_req ?  obj->last_write_req->engine->id : -1;
>  	err->cache_level = obj->cache_level;
>  }
>  
> diff --git a/drivers/gpu/drm/i915/i915_trace.h b/drivers/gpu/drm/i915/i915_trace.h
> index ad64d6ba13a2..533b6a87fd1d 100644
> --- a/drivers/gpu/drm/i915/i915_trace.h
> +++ b/drivers/gpu/drm/i915/i915_trace.h
> @@ -498,7 +498,7 @@ TRACE_EVENT(i915_gem_ring_sync_to,
>  	    TP_fast_assign(
>  			   __entry->dev = from->dev->primary->index;
>  			   __entry->sync_from = from->id;
> -			   __entry->sync_to = to_req->ring->id;
> +			   __entry->sync_to = to_req->engine->id;
>  			   __entry->seqno = i915_gem_request_get_seqno(req);
>  			   ),
>  
> @@ -520,13 +520,11 @@ TRACE_EVENT(i915_gem_ring_dispatch,
>  			     ),
>  
>  	    TP_fast_assign(
> -			   struct intel_engine_cs *ring =
> -						i915_gem_request_get_ring(req);
> -			   __entry->dev = ring->dev->primary->index;
> -			   __entry->ring = ring->id;
> -			   __entry->seqno = i915_gem_request_get_seqno(req);
> +			   __entry->dev = req->i915->dev->primary->index;
> +			   __entry->ring = req->engine->id;
> +			   __entry->seqno = req->seqno;
>  			   __entry->flags = flags;
> -			   i915_trace_irq_get(ring, req);
> +			   i915_trace_irq_get(req->engine, req);
>  			   ),
>  
>  	    TP_printk("dev=%u, ring=%u, seqno=%u, flags=%x",
> @@ -545,8 +543,8 @@ TRACE_EVENT(i915_gem_ring_flush,
>  			     ),
>  
>  	    TP_fast_assign(
> -			   __entry->dev = req->ring->dev->primary->index;
> -			   __entry->ring = req->ring->id;
> +			   __entry->dev = req->engine->dev->primary->index;
> +			   __entry->ring = req->engine->id;
>  			   __entry->invalidate = invalidate;
>  			   __entry->flush = flush;
>  			   ),
> @@ -567,11 +565,9 @@ DECLARE_EVENT_CLASS(i915_gem_request,
>  			     ),
>  
>  	    TP_fast_assign(
> -			   struct intel_engine_cs *ring =
> -						i915_gem_request_get_ring(req);
> -			   __entry->dev = ring->dev->primary->index;
> -			   __entry->ring = ring->id;
> -			   __entry->seqno = i915_gem_request_get_seqno(req);
> +			   __entry->dev = req->i915->dev->primary->index;
> +			   __entry->ring = req->engine->id;
> +			   __entry->seqno = req->seqno;
>  			   ),
>  
>  	    TP_printk("dev=%u, ring=%u, seqno=%u",
> @@ -631,13 +627,11 @@ TRACE_EVENT(i915_gem_request_wait_begin,
>  	     * less desirable.
>  	     */
>  	    TP_fast_assign(
> -			   struct intel_engine_cs *ring =
> -						i915_gem_request_get_ring(req);
> -			   __entry->dev = ring->dev->primary->index;
> -			   __entry->ring = ring->id;
> -			   __entry->seqno = i915_gem_request_get_seqno(req);
> +			   __entry->dev = req->i915->dev->primary->index;
> +			   __entry->ring = req->engine->id;
> +			   __entry->seqno = req->seqno;
>  			   __entry->blocking =
> -				     mutex_is_locked(&ring->dev->struct_mutex);
> +				     mutex_is_locked(&req->i915->dev->struct_mutex);
>  			   ),
>  
>  	    TP_printk("dev=%u, ring=%u, seqno=%u, blocking=%s",
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index f6dae2cfd9c9..2447f1a36fb0 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -10987,7 +10987,7 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
>  	}
>  
>  	len = 4;
> -	if (req->ring->id == RCS) {
> +	if (req->engine->id == RCS) {
>  		len += 6;
>  		/*
>  		 * On Gen 8, SRM is now taking an extra dword to accommodate
> @@ -11025,7 +11025,7 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
>  	 * for the RCS also doesn't appear to drop events. Setting the DERRMR
>  	 * to zero does lead to lockups within MI_DISPLAY_FLIP.
>  	 */
> -	if (req->ring->id == RCS) {
> +	if (req->engine->id == RCS) {
>  		intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1));
>  		intel_ring_emit(ring, DERRMR);
>  		intel_ring_emit(ring, ~(DERRMR_PIPEA_PRI_FLIP_DONE |
> @@ -11038,7 +11038,7 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
>  			intel_ring_emit(ring, MI_STORE_REGISTER_MEM(1) |
>  					      MI_SRM_LRM_GLOBAL_GTT);
>  		intel_ring_emit(ring, DERRMR);
> -		intel_ring_emit(ring, req->ring->scratch.gtt_offset + 256);
> +		intel_ring_emit(ring, req->engine->scratch.gtt_offset + 256);
>  		if (IS_GEN8(req->i915)) {
>  			intel_ring_emit(ring, 0);
>  			intel_ring_emit(ring, MI_NOOP);
> @@ -11078,7 +11078,7 @@ static bool use_mmio_flip(struct intel_engine_cs *ring,
>  	else if (i915.enable_execlists)
>  		return true;
>  	else
> -		return ring != i915_gem_request_get_ring(obj->last_write_req);
> +		return ring != i915_gem_request_get_engine(obj->last_write_req);
>  }
>  
>  static void skl_do_mmio_flip(struct intel_crtc *intel_crtc)
> @@ -11395,7 +11395,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
>  	} else if (IS_IVYBRIDGE(dev) || IS_HASWELL(dev)) {
>  		ring = &dev_priv->ring[BCS];
>  	} else if (INTEL_INFO(dev)->gen >= 7) {
> -		ring = i915_gem_request_get_ring(obj->last_write_req);
> +		ring = i915_gem_request_get_engine(obj->last_write_req);
>  		if (ring == NULL || ring->id != RCS)
>  			ring = &dev_priv->ring[BCS];
>  	} else {
> @@ -11411,7 +11411,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
>  	 */
>  	ret = intel_pin_and_fence_fb_obj(crtc->primary, fb,
>  					 crtc->primary->state,
> -					 mmio_flip ? i915_gem_request_get_ring(obj->last_write_req) : ring, &request);
> +					 mmio_flip ? i915_gem_request_get_engine(obj->last_write_req) : ring, &request);
>  	if (ret)
>  		goto cleanup_pending;
>  
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 2458804c521d..1502e53d2ad6 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -272,17 +272,16 @@ u32 intel_execlists_ctx_id(struct drm_i915_gem_object *ctx_obj)
>  
>  static uint64_t execlists_ctx_descriptor(struct drm_i915_gem_request *rq)
>  {
> -	struct intel_engine_cs *ring = rq->ring;
> -	struct drm_device *dev = ring->dev;
> -	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
> -	uint64_t desc;
> +	int ring = rq->engine->id;
> +	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring].state;
>  	uint64_t lrca = i915_gem_obj_ggtt_offset(ctx_obj);
> +	uint64_t desc;
>  
>  	WARN_ON(lrca & 0xFFFFFFFF00000FFFULL);
>  
>  	desc = GEN8_CTX_VALID;
> -	desc |= GEN8_CTX_ADDRESSING_MODE(dev) << GEN8_CTX_ADDRESSING_MODE_SHIFT;
> -	if (IS_GEN8(ctx_obj->base.dev))
> +	desc |= GEN8_CTX_ADDRESSING_MODE(rq->i915) << GEN8_CTX_ADDRESSING_MODE_SHIFT;
> +	if (IS_GEN8(rq->i915))
>  		desc |= GEN8_CTX_L3LLC_COHERENT;
>  	desc |= GEN8_CTX_PRIVILEGE;
>  	desc |= lrca;
> @@ -293,10 +292,10 @@ static uint64_t execlists_ctx_descriptor(struct drm_i915_gem_request *rq)
>  	/* desc |= GEN8_CTX_FORCE_RESTORE; */
>  
>  	/* WaEnableForceRestoreInCtxtDescForVCS:skl */
> -	if (IS_GEN9(dev) &&
> -	    INTEL_REVID(dev) <= SKL_REVID_B0 &&
> -	    (ring->id == BCS || ring->id == VCS ||
> -	    ring->id == VECS || ring->id == VCS2))
> +	if (IS_GEN9(rq->i915) &&
> +	    INTEL_REVID(rq->i915) <= SKL_REVID_B0 &&
> +	    (ring == BCS || ring == VCS ||
> +	     ring == VECS || ring == VCS2))
>  		desc |= GEN8_CTX_FORCE_RESTORE;
>  
>  	return desc;
> @@ -306,7 +305,7 @@ static void execlists_elsp_write(struct drm_i915_gem_request *rq0,
>  				 struct drm_i915_gem_request *rq1)
>  {
>  
> -	struct intel_engine_cs *ring = rq0->ring;
> +	struct intel_engine_cs *engine = rq0->engine;
>  	struct drm_i915_private *dev_priv = rq0->i915;
>  	uint64_t desc[2];
>  
> @@ -323,24 +322,23 @@ static void execlists_elsp_write(struct drm_i915_gem_request *rq0,
>  	/* You must always write both descriptors in the order below. */
>  	spin_lock(&dev_priv->uncore.lock);
>  	intel_uncore_forcewake_get__locked(dev_priv, FORCEWAKE_ALL);
> -	I915_WRITE_FW(RING_ELSP(ring), upper_32_bits(desc[1]));
> -	I915_WRITE_FW(RING_ELSP(ring), lower_32_bits(desc[1]));
> +	I915_WRITE_FW(RING_ELSP(engine), upper_32_bits(desc[1]));
> +	I915_WRITE_FW(RING_ELSP(engine), lower_32_bits(desc[1]));
>  
> -	I915_WRITE_FW(RING_ELSP(ring), upper_32_bits(desc[0]));
> +	I915_WRITE_FW(RING_ELSP(engine), upper_32_bits(desc[0]));
>  	/* The context is automatically loaded after the following */
> -	I915_WRITE_FW(RING_ELSP(ring), lower_32_bits(desc[0]));
> +	I915_WRITE_FW(RING_ELSP(engine), lower_32_bits(desc[0]));
>  
>  	/* ELSP is a wo register, use another nearby reg for posting */
> -	POSTING_READ_FW(RING_EXECLIST_STATUS(ring));
> +	POSTING_READ_FW(RING_EXECLIST_STATUS(engine));
>  	intel_uncore_forcewake_put__locked(dev_priv, FORCEWAKE_ALL);
>  	spin_unlock(&dev_priv->uncore.lock);
>  }
>  
>  static int execlists_update_context(struct drm_i915_gem_request *rq)
>  {
> -	struct intel_engine_cs *ring = rq->ring;
>  	struct i915_hw_ppgtt *ppgtt = rq->ctx->ppgtt;
> -	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
> +	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[rq->engine->id].state;
>  	struct drm_i915_gem_object *rb_obj = rq->ringbuf->obj;
>  	struct page *page;
>  	uint32_t *reg_state;
> @@ -355,7 +353,7 @@ static int execlists_update_context(struct drm_i915_gem_request *rq)
>  	reg_state[CTX_RING_TAIL+1] = rq->tail;
>  	reg_state[CTX_RING_BUFFER_START+1] = i915_gem_obj_ggtt_offset(rb_obj);
>  
> -	if (ppgtt && !USES_FULL_48BIT_PPGTT(ppgtt->base.dev)) {
> +	if (ppgtt && !USES_FULL_48BIT_PPGTT(rq->i915)) {
>  		/* True 32b PPGTT with dynamic page allocation: update PDP
>  		 * registers and point the unallocated PDPs to scratch page.
>  		 * PML4 is allocated during ppgtt init, so this is not needed
> @@ -538,27 +536,27 @@ void intel_lrc_irq_handler(struct intel_engine_cs *ring)
>  
>  static int execlists_context_queue(struct drm_i915_gem_request *request)
>  {
> -	struct intel_engine_cs *ring = request->ring;
> +	struct intel_engine_cs *engine = request->engine;
>  	struct drm_i915_gem_request *cursor;
>  	int num_elements = 0;
>  
> -	if (request->ctx != ring->default_context)
> +	if (request->ctx != engine->default_context)
>  		intel_lr_context_pin(request);
>  
>  	i915_gem_request_reference(request);
>  
>  	request->tail = request->ringbuf->tail;
>  
> -	spin_lock_irq(&ring->execlist_lock);
> +	spin_lock_irq(&engine->execlist_lock);
>  
> -	list_for_each_entry(cursor, &ring->execlist_queue, execlist_link)
> +	list_for_each_entry(cursor, &engine->execlist_queue, execlist_link)
>  		if (++num_elements > 2)
>  			break;
>  
>  	if (num_elements > 2) {
>  		struct drm_i915_gem_request *tail_req;
>  
> -		tail_req = list_last_entry(&ring->execlist_queue,
> +		tail_req = list_last_entry(&engine->execlist_queue,
>  					   struct drm_i915_gem_request,
>  					   execlist_link);
>  
> @@ -567,41 +565,41 @@ static int execlists_context_queue(struct drm_i915_gem_request *request)
>  				"More than 2 already-submitted reqs queued\n");
>  			list_del(&tail_req->execlist_link);
>  			list_add_tail(&tail_req->execlist_link,
> -				&ring->execlist_retired_req_list);
> +				&engine->execlist_retired_req_list);
>  		}
>  	}
>  
> -	list_add_tail(&request->execlist_link, &ring->execlist_queue);
> +	list_add_tail(&request->execlist_link, &engine->execlist_queue);
>  	if (num_elements == 0)
> -		execlists_context_unqueue(ring);
> +		execlists_context_unqueue(engine);
>  
> -	spin_unlock_irq(&ring->execlist_lock);
> +	spin_unlock_irq(&engine->execlist_lock);
>  
>  	return 0;
>  }
>  
>  static int logical_ring_invalidate_all_caches(struct drm_i915_gem_request *req)
>  {
> -	struct intel_engine_cs *ring = req->ring;
> +	struct intel_engine_cs *engine = req->engine;
>  	uint32_t flush_domains;
>  	int ret;
>  
>  	flush_domains = 0;
> -	if (ring->gpu_caches_dirty)
> +	if (engine->gpu_caches_dirty)
>  		flush_domains = I915_GEM_GPU_DOMAINS;
>  
> -	ret = ring->emit_flush(req, I915_GEM_GPU_DOMAINS, flush_domains);
> +	ret = engine->emit_flush(req, I915_GEM_GPU_DOMAINS, flush_domains);
>  	if (ret)
>  		return ret;
>  
> -	ring->gpu_caches_dirty = false;
> +	engine->gpu_caches_dirty = false;
>  	return 0;
>  }
>  
>  static int execlists_move_to_gpu(struct drm_i915_gem_request *req,
>  				 struct list_head *vmas)
>  {
> -	const unsigned other_rings = ~intel_ring_flag(req->ring);
> +	const unsigned other_rings = ~intel_ring_flag(req->engine);
>  	struct i915_vma *vma;
>  	uint32_t flush_domains = 0;
>  	bool flush_chipset = false;
> @@ -611,7 +609,7 @@ static int execlists_move_to_gpu(struct drm_i915_gem_request *req,
>  		struct drm_i915_gem_object *obj = vma->obj;
>  
>  		if (obj->active & other_rings) {
> -			ret = i915_gem_object_sync(obj, req->ring, &req);
> +			ret = i915_gem_object_sync(obj, req->engine, &req);
>  			if (ret)
>  				return ret;
>  		}
> @@ -635,9 +633,9 @@ int intel_logical_ring_alloc_request_extras(struct drm_i915_gem_request *request
>  {
>  	int ret;
>  
> -	request->ringbuf = request->ctx->engine[request->ring->id].ringbuf;
> +	request->ringbuf = request->ctx->engine[request->engine->id].ringbuf;
>  
> -	if (request->ctx != request->ring->default_context) {
> +	if (request->ctx != request->engine->default_context) {
>  		ret = intel_lr_context_pin(request);
>  		if (ret)
>  			return ret;
> @@ -660,7 +658,7 @@ intel_logical_ring_advance_and_submit(struct drm_i915_gem_request *request)
>  {
>  	intel_ring_advance(request->ringbuf);
>  
> -	if (intel_ring_stopped(request->ring))
> +	if (intel_ring_stopped(request->engine))
>  		return;
>  
>  	execlists_context_queue(request);
> @@ -811,35 +809,35 @@ void intel_logical_ring_stop(struct intel_engine_cs *ring)
>  
>  int logical_ring_flush_all_caches(struct drm_i915_gem_request *req)
>  {
> -	struct intel_engine_cs *ring = req->ring;
> +	struct intel_engine_cs *engine = req->engine;
>  	int ret;
>  
> -	if (!ring->gpu_caches_dirty)
> +	if (!engine->gpu_caches_dirty)
>  		return 0;
>  
> -	ret = ring->emit_flush(req, 0, I915_GEM_GPU_DOMAINS);
> +	ret = engine->emit_flush(req, 0, I915_GEM_GPU_DOMAINS);
>  	if (ret)
>  		return ret;
>  
> -	ring->gpu_caches_dirty = false;
> +	engine->gpu_caches_dirty = false;
>  	return 0;
>  }
>  
>  static int intel_lr_context_pin(struct drm_i915_gem_request *rq)
>  {
> -	struct intel_engine_cs *ring = rq->ring;
> -	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
> +	int engine = rq->engine->id;
> +	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[engine].state;
>  	struct intel_ringbuffer *ringbuf = rq->ringbuf;
>  	int ret = 0;
>  
> -	WARN_ON(!mutex_is_locked(&ring->dev->struct_mutex));
> -	if (rq->ctx->engine[ring->id].pin_count++ == 0) {
> +	WARN_ON(!mutex_is_locked(&rq->i915->dev->struct_mutex));
> +	if (rq->ctx->engine[engine].pin_count++ == 0) {
>  		ret = i915_gem_obj_ggtt_pin(ctx_obj,
>  				GEN8_LR_CONTEXT_ALIGN, 0);
>  		if (ret)
>  			goto reset_pin_count;
>  
> -		ret = intel_pin_and_map_ringbuffer_obj(ring->dev, ringbuf);
> +		ret = intel_pin_and_map_ringbuffer_obj(rq->i915->dev, ringbuf);
>  		if (ret)
>  			goto unpin_ctx_obj;
>  
> @@ -851,20 +849,20 @@ static int intel_lr_context_pin(struct drm_i915_gem_request *rq)
>  unpin_ctx_obj:
>  	i915_gem_object_ggtt_unpin(ctx_obj);
>  reset_pin_count:
> -	rq->ctx->engine[ring->id].pin_count = 0;
> +	rq->ctx->engine[engine].pin_count = 0;
>  
>  	return ret;
>  }
>  
>  void intel_lr_context_unpin(struct drm_i915_gem_request *rq)
>  {
> -	struct intel_engine_cs *ring = rq->ring;
> -	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[ring->id].state;
> +	int engine = rq->engine->id;
> +	struct drm_i915_gem_object *ctx_obj = rq->ctx->engine[engine].state;
>  	struct intel_ringbuffer *ringbuf = rq->ringbuf;
>  
>  	if (ctx_obj) {
> -		WARN_ON(!mutex_is_locked(&ring->dev->struct_mutex));
> -		if (--rq->ctx->engine[ring->id].pin_count == 0) {
> +		WARN_ON(!mutex_is_locked(&rq->i915->dev->struct_mutex));
> +		if (--rq->ctx->engine[engine].pin_count == 0) {
>  			intel_unpin_ringbuffer_obj(ringbuf);
>  			i915_gem_object_ggtt_unpin(ctx_obj);
>  		}
> @@ -874,7 +872,7 @@ void intel_lr_context_unpin(struct drm_i915_gem_request *rq)
>  static int intel_logical_ring_workarounds_emit(struct drm_i915_gem_request *req)
>  {
>  	int ret, i;
> -	struct intel_engine_cs *ring = req->ring;
> +	struct intel_engine_cs *engine = req->engine;
>  	struct intel_ringbuffer *ringbuf = req->ringbuf;
>  	struct drm_i915_private *dev_priv = req->i915;
>  	struct i915_workarounds *w = &dev_priv->workarounds;
> @@ -882,7 +880,7 @@ static int intel_logical_ring_workarounds_emit(struct drm_i915_gem_request *req)
>  	if (WARN_ON_ONCE(w->count == 0))
>  		return 0;
>  
> -	ring->gpu_caches_dirty = true;
> +	engine->gpu_caches_dirty = true;
>  	ret = logical_ring_flush_all_caches(req);
>  	if (ret)
>  		return ret;
> @@ -900,7 +898,7 @@ static int intel_logical_ring_workarounds_emit(struct drm_i915_gem_request *req)
>  
>  	intel_ring_advance(ringbuf);
>  
> -	ring->gpu_caches_dirty = true;
> +	engine->gpu_caches_dirty = true;
>  	ret = logical_ring_flush_all_caches(req);
>  	if (ret)
>  		return ret;
> @@ -1319,7 +1317,7 @@ static int gen9_init_render_ring(struct intel_engine_cs *ring)
>  static int intel_logical_ring_emit_pdps(struct drm_i915_gem_request *req)
>  {
>  	struct i915_hw_ppgtt *ppgtt = req->ctx->ppgtt;
> -	struct intel_engine_cs *ring = req->ring;
> +	struct intel_engine_cs *engine = req->engine;
>  	struct intel_ringbuffer *ringbuf = req->ringbuf;
>  	const int num_lri_cmds = GEN8_LEGACY_PDPES * 2;
>  	int i, ret;
> @@ -1332,9 +1330,9 @@ static int intel_logical_ring_emit_pdps(struct drm_i915_gem_request *req)
>  	for (i = GEN8_LEGACY_PDPES - 1; i >= 0; i--) {
>  		const dma_addr_t pd_daddr = i915_page_dir_dma_addr(ppgtt, i);
>  
> -		intel_ring_emit(ringbuf, GEN8_RING_PDP_UDW(ring, i));
> +		intel_ring_emit(ringbuf, GEN8_RING_PDP_UDW(engine, i));
>  		intel_ring_emit(ringbuf, upper_32_bits(pd_daddr));
> -		intel_ring_emit(ringbuf, GEN8_RING_PDP_LDW(ring, i));
> +		intel_ring_emit(ringbuf, GEN8_RING_PDP_LDW(engine, i));
>  		intel_ring_emit(ringbuf, lower_32_bits(pd_daddr));
>  	}
>  
> @@ -1358,14 +1356,14 @@ static int gen8_emit_bb_start(struct drm_i915_gem_request *req,
>  	 * not idle). PML4 is allocated during ppgtt init so this is
>  	 * not needed in 48-bit.*/
>  	if (req->ctx->ppgtt &&
> -	    (intel_ring_flag(req->ring) & req->ctx->ppgtt->pd_dirty_rings)) {
> +	    (intel_ring_flag(req->engine) & req->ctx->ppgtt->pd_dirty_rings)) {
>  		if (!USES_FULL_48BIT_PPGTT(req->i915)) {
>  			ret = intel_logical_ring_emit_pdps(req);
>  			if (ret)
>  				return ret;
>  		}
>  
> -		req->ctx->ppgtt->pd_dirty_rings &= ~intel_ring_flag(req->ring);
> +		req->ctx->ppgtt->pd_dirty_rings &= ~intel_ring_flag(req->engine);
>  	}
>  
>  	ret = intel_ring_begin(req, 4);
> @@ -1575,21 +1573,21 @@ static int intel_lr_context_render_state_init(struct drm_i915_gem_request *req)
>  	struct render_state so;
>  	int ret;
>  
> -	ret = i915_gem_render_state_prepare(req->ring, &so);
> +	ret = i915_gem_render_state_prepare(req->engine, &so);
>  	if (ret)
>  		return ret;
>  
>  	if (so.rodata == NULL)
>  		return 0;
>  
> -	ret = req->ring->emit_bb_start(req, so.ggtt_offset,
> -				       I915_DISPATCH_SECURE);
> +	ret = req->engine->emit_bb_start(req, so.ggtt_offset,
> +					 I915_DISPATCH_SECURE);
>  	if (ret)
>  		goto out;
>  
> -	ret = req->ring->emit_bb_start(req,
> -				       (so.ggtt_offset + so.aux_batch_offset),
> -				       I915_DISPATCH_SECURE);
> +	ret = req->engine->emit_bb_start(req,
> +					 (so.ggtt_offset + so.aux_batch_offset),
> +					 I915_DISPATCH_SECURE);
>  	if (ret)
>  		goto out;
>  
> diff --git a/drivers/gpu/drm/i915/intel_mocs.c b/drivers/gpu/drm/i915/intel_mocs.c
> index ac0a982bbf55..d79c9c0bbffb 100644
> --- a/drivers/gpu/drm/i915/intel_mocs.c
> +++ b/drivers/gpu/drm/i915/intel_mocs.c
> @@ -138,21 +138,21 @@ static const struct drm_i915_mocs_entry broxton_mocs_table[] = {
>   *
>   * Return: true if there are applicable MOCS settings for the device.
>   */
> -static bool get_mocs_settings(struct drm_device *dev,
> +static bool get_mocs_settings(struct drm_i915_private *dev_priv,
>  			      struct drm_i915_mocs_table *table)
>  {
>  	bool result = false;
>  
> -	if (IS_SKYLAKE(dev)) {
> +	if (IS_SKYLAKE(dev_priv)) {
>  		table->size  = ARRAY_SIZE(skylake_mocs_table);
>  		table->table = skylake_mocs_table;
>  		result = true;
> -	} else if (IS_BROXTON(dev)) {
> +	} else if (IS_BROXTON(dev_priv)) {
>  		table->size  = ARRAY_SIZE(broxton_mocs_table);
>  		table->table = broxton_mocs_table;
>  		result = true;
>  	} else {
> -		WARN_ONCE(INTEL_INFO(dev)->gen >= 9,
> +		WARN_ONCE(INTEL_INFO(dev_priv)->gen >= 9,
>  			  "Platform that should have a MOCS table does not.\n");
>  	}
>  
> @@ -297,7 +297,7 @@ int intel_rcs_context_init_mocs(struct drm_i915_gem_request *req)
>  	struct drm_i915_mocs_table t;
>  	int ret;
>  
> -	if (get_mocs_settings(req->ring->dev, &t)) {
> +	if (get_mocs_settings(req->i915, &t)) {
>  		/* Program the control registers */
>  		ret = emit_mocs_control_table(req, &t, GEN9_GFX_MOCS_0);
>  		if (ret)
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index 9821c2a8074a..cc060588a287 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -216,7 +216,7 @@ static int
>  intel_emit_post_sync_nonzero_flush(struct drm_i915_gem_request *req)
>  {
>  	struct intel_ringbuffer *ring = req->ringbuf;
> -	u32 scratch_addr = req->ring->scratch.gtt_offset + 2 * CACHELINE_BYTES;
> +	u32 scratch_addr = req->engine->scratch.gtt_offset + 2 * CACHELINE_BYTES;
>  	int ret;
>  
>  	ret = intel_ring_begin(req, 6);
> @@ -253,7 +253,7 @@ gen6_render_ring_flush(struct drm_i915_gem_request *req,
>  {
>  	struct intel_ringbuffer *ring = req->ringbuf;
>  	u32 flags = 0;
> -	u32 scratch_addr = req->ring->scratch.gtt_offset + 2 * CACHELINE_BYTES;
> +	u32 scratch_addr = req->engine->scratch.gtt_offset + 2 * CACHELINE_BYTES;
>  	int ret;
>  
>  	/* Force SNB workarounds for PIPE_CONTROL flushes */
> @@ -326,7 +326,7 @@ gen7_render_ring_flush(struct drm_i915_gem_request *req,
>  {
>  	struct intel_ringbuffer *ring = req->ringbuf;
>  	u32 flags = 0;
> -	u32 scratch_addr = req->ring->scratch.gtt_offset + 2 * CACHELINE_BYTES;
> +	u32 scratch_addr = req->engine->scratch.gtt_offset + 2 * CACHELINE_BYTES;
>  	int ret;
>  
>  	/*
> @@ -410,7 +410,7 @@ gen8_render_ring_flush(struct drm_i915_gem_request *req,
>  		       u32 invalidate_domains, u32 flush_domains)
>  {
>  	u32 flags = 0;
> -	u32 scratch_addr = req->ring->scratch.gtt_offset + 2 * CACHELINE_BYTES;
> +	u32 scratch_addr = req->engine->scratch.gtt_offset + 2 * CACHELINE_BYTES;
>  	int ret;
>  
>  	flags |= PIPE_CONTROL_CS_STALL;
> @@ -720,7 +720,7 @@ static int intel_ring_workarounds_emit(struct drm_i915_gem_request *req)
>  	if (WARN_ON_ONCE(w->count == 0))
>  		return 0;
>  
> -	req->ring->gpu_caches_dirty = true;
> +	req->engine->gpu_caches_dirty = true;
>  	ret = intel_ring_flush_all_caches(req);
>  	if (ret)
>  		return ret;
> @@ -738,7 +738,7 @@ static int intel_ring_workarounds_emit(struct drm_i915_gem_request *req)
>  
>  	intel_ring_advance(ring);
>  
> -	req->ring->gpu_caches_dirty = true;
> +	req->engine->gpu_caches_dirty = true;
>  	ret = intel_ring_flush_all_caches(req);
>  	if (ret)
>  		return ret;
> @@ -1199,7 +1199,7 @@ static int gen8_rcs_signal(struct drm_i915_gem_request *signaller_req,
>  
>  	for_each_ring(waiter, dev_priv, i) {
>  		u32 seqno;
> -		u64 gtt_offset = signaller_req->ring->semaphore.signal_ggtt[i];
> +		u64 gtt_offset = signaller_req->engine->semaphore.signal_ggtt[i];
>  		if (gtt_offset == MI_SEMAPHORE_SYNC_INVALID)
>  			continue;
>  
> @@ -1239,7 +1239,7 @@ static int gen8_xcs_signal(struct drm_i915_gem_request *signaller_req,
>  
>  	for_each_ring(waiter, dev_priv, i) {
>  		u32 seqno;
> -		u64 gtt_offset = signaller_req->ring->semaphore.signal_ggtt[i];
> +		u64 gtt_offset = signaller_req->engine->semaphore.signal_ggtt[i];
>  		if (gtt_offset == MI_SEMAPHORE_SYNC_INVALID)
>  			continue;
>  
> @@ -1276,7 +1276,7 @@ static int gen6_signal(struct drm_i915_gem_request *signaller_req,
>  		return ret;
>  
>  	for_each_ring(useless, dev_priv, i) {
> -		u32 mbox_reg = signaller_req->ring->semaphore.mbox.signal[i];
> +		u32 mbox_reg = signaller_req->engine->semaphore.mbox.signal[i];
>  		if (mbox_reg != GEN6_NOSYNC) {
>  			u32 seqno = i915_gem_request_get_seqno(signaller_req);
>  			intel_ring_emit(signaller, MI_LOAD_REGISTER_IMM(1));
> @@ -1306,8 +1306,8 @@ gen6_add_request(struct drm_i915_gem_request *req)
>  	struct intel_ringbuffer *ring = req->ringbuf;
>  	int ret;
>  
> -	if (req->ring->semaphore.signal)
> -		ret = req->ring->semaphore.signal(req, 4);
> +	if (req->engine->semaphore.signal)
> +		ret = req->engine->semaphore.signal(req, 4);
>  	else
>  		ret = intel_ring_begin(req, 4);
>  
> @@ -1318,7 +1318,7 @@ gen6_add_request(struct drm_i915_gem_request *req)
>  	intel_ring_emit(ring, I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
>  	intel_ring_emit(ring, i915_gem_request_get_seqno(req));
>  	intel_ring_emit(ring, MI_USER_INTERRUPT);
> -	__intel_ring_advance(req->ring);
> +	__intel_ring_advance(req->engine);
>  
>  	return 0;
>  }
> @@ -1356,10 +1356,10 @@ gen8_ring_sync(struct drm_i915_gem_request *waiter_req,
>  				MI_SEMAPHORE_SAD_GTE_SDD);
>  	intel_ring_emit(waiter, seqno);
>  	intel_ring_emit(waiter,
> -			lower_32_bits(GEN8_WAIT_OFFSET(waiter_req->ring,
> +			lower_32_bits(GEN8_WAIT_OFFSET(waiter_req->engine,
>  						       signaller->id)));
>  	intel_ring_emit(waiter,
> -			upper_32_bits(GEN8_WAIT_OFFSET(waiter_req->ring,
> +			upper_32_bits(GEN8_WAIT_OFFSET(waiter_req->engine,
>  						       signaller->id)));
>  	intel_ring_advance(waiter);
>  	return 0;
> @@ -1374,7 +1374,7 @@ gen6_ring_sync(struct drm_i915_gem_request *waiter_req,
>  	u32 dw1 = MI_SEMAPHORE_MBOX |
>  		  MI_SEMAPHORE_COMPARE |
>  		  MI_SEMAPHORE_REGISTER;
> -	u32 wait_mbox = signaller->semaphore.mbox.wait[waiter_req->ring->id];
> +	u32 wait_mbox = signaller->semaphore.mbox.wait[waiter_req->engine->id];
>  	int ret;
>  
>  	/* Throughout all of the GEM code, seqno passed implies our current
> @@ -1419,7 +1419,7 @@ static int
>  pc_render_add_request(struct drm_i915_gem_request *req)
>  {
>  	struct intel_ringbuffer *ring = req->ringbuf;
> -	u32 scratch_addr = req->ring->scratch.gtt_offset + 2 * CACHELINE_BYTES;
> +	u32 scratch_addr = req->engine->scratch.gtt_offset + 2 * CACHELINE_BYTES;
>  	int ret;
>  
>  	/* For Ironlake, MI_USER_INTERRUPT was deprecated and apparently
> @@ -1437,7 +1437,7 @@ pc_render_add_request(struct drm_i915_gem_request *req)
>  	intel_ring_emit(ring, GFX_OP_PIPE_CONTROL(4) | PIPE_CONTROL_QW_WRITE |
>  			PIPE_CONTROL_WRITE_FLUSH |
>  			PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE);
> -	intel_ring_emit(ring, req->ring->scratch.gtt_offset | PIPE_CONTROL_GLOBAL_GTT);
> +	intel_ring_emit(ring, req->engine->scratch.gtt_offset | PIPE_CONTROL_GLOBAL_GTT);
>  	intel_ring_emit(ring, i915_gem_request_get_seqno(req));
>  	intel_ring_emit(ring, 0);
>  	PIPE_CONTROL_FLUSH(ring, scratch_addr);
> @@ -1456,10 +1456,10 @@ pc_render_add_request(struct drm_i915_gem_request *req)
>  			PIPE_CONTROL_WRITE_FLUSH |
>  			PIPE_CONTROL_TEXTURE_CACHE_INVALIDATE |
>  			PIPE_CONTROL_NOTIFY);
> -	intel_ring_emit(ring, req->ring->scratch.gtt_offset | PIPE_CONTROL_GLOBAL_GTT);
> +	intel_ring_emit(ring, req->engine->scratch.gtt_offset | PIPE_CONTROL_GLOBAL_GTT);
>  	intel_ring_emit(ring, i915_gem_request_get_seqno(req));
>  	intel_ring_emit(ring, 0);
> -	__intel_ring_advance(req->ring);
> +	__intel_ring_advance(req->engine);
>  
>  	return 0;
>  }
> @@ -1639,7 +1639,7 @@ i9xx_add_request(struct drm_i915_gem_request *req)
>  	intel_ring_emit(ring, I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
>  	intel_ring_emit(ring, i915_gem_request_get_seqno(req));
>  	intel_ring_emit(ring, MI_USER_INTERRUPT);
> -	__intel_ring_advance(req->ring);
> +	__intel_ring_advance(req->engine);
>  
>  	return 0;
>  }
> @@ -1801,7 +1801,7 @@ i830_dispatch_execbuffer(struct drm_i915_gem_request *req,
>  			 unsigned dispatch_flags)
>  {
>  	struct intel_ringbuffer *ring = req->ringbuf;
> -	u32 cs_offset = req->ring->scratch.gtt_offset;
> +	u32 cs_offset = req->engine->scratch.gtt_offset;
>  	int ret;
>  
>  	ret = intel_ring_begin(req, 6);
> @@ -2164,7 +2164,7 @@ int intel_ring_idle(struct intel_engine_cs *ring)
>  
>  int intel_ring_alloc_request_extras(struct drm_i915_gem_request *request)
>  {
> -	request->ringbuf = request->ring->buffer;
> +	request->ringbuf = request->engine->buffer;
>  	return 0;
>  }
>  
> @@ -2218,7 +2218,7 @@ void intel_ring_reserved_space_end(struct intel_ringbuffer *ringbuf)
>  static int wait_for_space(struct drm_i915_gem_request *req, int bytes)
>  {
>  	struct intel_ringbuffer *ringbuf = req->ringbuf;
> -	struct intel_engine_cs *ring = req->ring;
> +	struct intel_engine_cs *engine = req->engine;
>  	struct drm_i915_gem_request *target;
>  	unsigned space;
>  	int ret;
> @@ -2229,7 +2229,7 @@ static int wait_for_space(struct drm_i915_gem_request *req, int bytes)
>  	/* The whole point of reserving space is to not wait! */
>  	WARN_ON(ringbuf->reserved_in_use);
>  
> -	list_for_each_entry(target, &ring->request_list, list) {
> +	list_for_each_entry(target, &engine->request_list, list) {
>  		/*
>  		 * The request queue is per-engine, so can contain requests
>  		 * from multiple ringbuffers. Here, we must ignore any that
> @@ -2245,7 +2245,7 @@ static int wait_for_space(struct drm_i915_gem_request *req, int bytes)
>  			break;
>  	}
>  
> -	if (WARN_ON(&target->list == &ring->request_list))
> +	if (WARN_ON(&target->list == &engine->request_list))
>  		return -ENOSPC;
>  
>  	ret = i915_wait_request(target);
> @@ -2931,40 +2931,40 @@ int intel_init_vebox_ring_buffer(struct drm_device *dev)
>  int
>  intel_ring_flush_all_caches(struct drm_i915_gem_request *req)
>  {
> -	struct intel_engine_cs *ring = req->ring;
> +	struct intel_engine_cs *engine = req->engine;
>  	int ret;
>  
> -	if (!ring->gpu_caches_dirty)
> +	if (!engine->gpu_caches_dirty)
>  		return 0;
>  
> -	ret = ring->flush(req, 0, I915_GEM_GPU_DOMAINS);
> +	ret = engine->flush(req, 0, I915_GEM_GPU_DOMAINS);
>  	if (ret)
>  		return ret;
>  
>  	trace_i915_gem_ring_flush(req, 0, I915_GEM_GPU_DOMAINS);
>  
> -	ring->gpu_caches_dirty = false;
> +	engine->gpu_caches_dirty = false;
>  	return 0;
>  }
>  
>  int
>  intel_ring_invalidate_all_caches(struct drm_i915_gem_request *req)
>  {
> -	struct intel_engine_cs *ring = req->ring;
> +	struct intel_engine_cs *engine = req->engine;
>  	uint32_t flush_domains;
>  	int ret;
>  
>  	flush_domains = 0;
> -	if (ring->gpu_caches_dirty)
> +	if (engine->gpu_caches_dirty)
>  		flush_domains = I915_GEM_GPU_DOMAINS;
>  
> -	ret = ring->flush(req, I915_GEM_GPU_DOMAINS, flush_domains);
> +	ret = engine->flush(req, I915_GEM_GPU_DOMAINS, flush_domains);
>  	if (ret)
>  		return ret;
>  
>  	trace_i915_gem_ring_flush(req, I915_GEM_GPU_DOMAINS, flush_domains);
>  
> -	ring->gpu_caches_dirty = false;
> +	engine->gpu_caches_dirty = false;
>  	return 0;
>  }
>  
> -- 
> 2.6.2
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-11-24 14:48 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-20 12:43 [PATCH 01/12] drm/i915: Convert i915_semaphores_is_enabled over to drm_i915_private Chris Wilson
2015-11-20 12:43 ` [PATCH 02/12] drm/i915: Use the new rq->i915 field where appropriate Chris Wilson
2015-11-24 13:57   ` Daniel Vetter
2015-11-24 14:23     ` Chris Wilson
2015-11-24 14:41       ` Daniel Vetter
2015-11-20 12:43 ` [PATCH 03/12] drm/i915: Unify intel_logical_ring_emit and intel_ring_emit Chris Wilson
2015-11-24 14:33   ` Daniel Vetter
2015-11-24 14:52     ` Chris Wilson
2015-11-20 12:43 ` [PATCH 04/12] drm/i915: Unify intel_ring_begin() Chris Wilson
2015-11-24 14:38   ` Daniel Vetter
2015-11-24 14:58     ` Chris Wilson
2015-11-20 12:43 ` [PATCH 05/12] drm/i915: Remove the identical implementations of request space reservation Chris Wilson
2015-11-24 14:42   ` Daniel Vetter
2015-11-20 12:43 ` [PATCH 06/12] drm/i915: Rename request->ring to request->engine Chris Wilson
2015-11-24 14:48   ` Daniel Vetter [this message]
2015-11-20 12:43 ` [PATCH 07/12] drm/i915: Rename request->ringbuf to request->ring Chris Wilson
2015-11-24 14:51   ` Daniel Vetter
2015-11-24 15:08   ` Tvrtko Ursulin
2015-11-24 15:25     ` Chris Wilson
2015-11-25 10:22       ` Tvrtko Ursulin
2015-11-20 12:43 ` [PATCH 08/12] drm/i915: Rename backpointer from intel_ringbuffer to intel_engine_cs Chris Wilson
2015-11-24 14:58   ` Daniel Vetter
2015-11-24 15:10     ` Chris Wilson
2015-11-24 15:15     ` Chris Wilson
2015-11-24 15:36       ` Daniel Vetter
2015-11-20 12:43 ` [PATCH 09/12] drm/i915: Rename intel_context[engine].ringbuf Chris Wilson
2015-11-24 14:59   ` Daniel Vetter
2015-11-24 15:09   ` Tvrtko Ursulin
2015-11-24 15:27     ` Chris Wilson
2015-11-20 12:43 ` [PATCH 10/12] drm/i915: Reduce the pointer dance of i915_is_ggtt() Chris Wilson
2015-11-24 15:08   ` Daniel Vetter
2015-11-20 12:43 ` [PATCH 11/12] drm/i915: Remove request retirement before each batch Chris Wilson
2015-11-20 12:43 ` [PATCH 12/12] drm/i915: Cache the reset_counter for the request Chris Wilson
2015-11-24 16:43   ` Daniel Vetter
2015-11-24 21:43     ` Chris Wilson
2015-11-25  9:12       ` Daniel Vetter
2015-11-25 12:17         ` Chris Wilson
2015-11-26  9:21           ` Daniel Vetter
2015-11-26  9:50             ` Chris Wilson
2015-11-25 17:11         ` Chris Wilson
2015-11-24 13:52 ` [PATCH 01/12] drm/i915: Convert i915_semaphores_is_enabled over to drm_i915_private Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151124144827.GM17050@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.