Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bccca494 authored by John Harrison's avatar John Harrison Committed by Daniel Vetter
Browse files

drm/i915: Remove the now obsolete 'outstanding_lazy_request'



The outstanding_lazy_request is no longer used anywhere in the driver.
Everything that was looking at it now has a request explicitly passed in from on
high. Everything that was relying upon it behind the scenes is now explicitly
creating/passing/submitting its own private request. Thus the OLR can be
removed.

For: VIZ-5115
Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
Reviewed-by: default avatarTomas Elf <tomas.elf@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 59c35a4d
Loading
Loading
Loading
Loading
+2 −14
Original line number Diff line number Diff line
@@ -1157,9 +1157,6 @@ i915_gem_check_olr(struct drm_i915_gem_request *req)
{
	WARN_ON(!mutex_is_locked(&req->ring->dev->struct_mutex));

	if (req == req->ring->outstanding_lazy_request)
		i915_add_request(req);

	return 0;
}

@@ -2488,8 +2485,6 @@ void __i915_add_request(struct drm_i915_gem_request *request,
	dev_priv = ring->dev->dev_private;
	ringbuf = request->ringbuf;

	WARN_ON(request != ring->outstanding_lazy_request);

	/*
	 * To ensure that this call will not fail, space for its emissions
	 * should already have been reserved in the ring buffer. Let the ring
@@ -2558,7 +2553,6 @@ void __i915_add_request(struct drm_i915_gem_request *request,
	}

	trace_i915_gem_request_add(request);
	ring->outstanding_lazy_request = NULL;

	i915_queue_hangcheck(ring->dev);

@@ -2647,8 +2641,7 @@ int i915_gem_request_alloc(struct intel_engine_cs *ring,
	if (!req_out)
		return -EINVAL;

	if ((*req_out = ring->outstanding_lazy_request) != NULL)
		return 0;
	*req_out = NULL;

	req = kmem_cache_zalloc(dev_priv->requests, GFP_KERNEL);
	if (req == NULL)
@@ -2694,7 +2687,7 @@ int i915_gem_request_alloc(struct intel_engine_cs *ring,
		return ret;
	}

	*req_out = ring->outstanding_lazy_request = req;
	*req_out = req;
	return 0;

err:
@@ -2791,9 +2784,6 @@ static void i915_gem_reset_ring_cleanup(struct drm_i915_private *dev_priv,

		i915_gem_request_retire(request);
	}

	/* This may not have been flushed before the reset, so clean it now */
	i915_gem_request_assign(&ring->outstanding_lazy_request, NULL);
}

void i915_gem_restore_fences(struct drm_device *dev)
@@ -3344,8 +3334,6 @@ int i915_gpu_idle(struct drm_device *dev)
			i915_add_request_no_flush(req);
		}

		WARN_ON(ring->outstanding_lazy_request);

		ret = intel_ring_idle(ring);
		if (ret)
			return ret;
+1 −3
Original line number Diff line number Diff line
@@ -1655,10 +1655,8 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
	 * must be freed again. If it was submitted then it is being tracked
	 * on the active request list and no clean up is required here.
	 */
	if (ret && params->request) {
	if (ret && params->request)
		i915_gem_request_cancel(params->request);
		ring->outstanding_lazy_request = NULL;
	}

	mutex_unlock(&dev->struct_mutex);

+0 −1
Original line number Diff line number Diff line
@@ -1633,7 +1633,6 @@ void intel_logical_ring_cleanup(struct intel_engine_cs *ring)

	intel_logical_ring_stop(ring);
	WARN_ON((I915_READ_MODE(ring) & MODE_IDLE) == 0);
	i915_gem_request_assign(&ring->outstanding_lazy_request, NULL);

	if (ring->cleanup)
		ring->cleanup(ring);
+0 −8
Original line number Diff line number Diff line
@@ -2101,7 +2101,6 @@ void intel_cleanup_ring_buffer(struct intel_engine_cs *ring)

	intel_unpin_ringbuffer_obj(ringbuf);
	intel_destroy_ringbuffer_obj(ringbuf);
	i915_gem_request_assign(&ring->outstanding_lazy_request, NULL);

	if (ring->cleanup)
		ring->cleanup(ring);
@@ -2176,11 +2175,6 @@ int intel_ring_idle(struct intel_engine_cs *ring)
{
	struct drm_i915_gem_request *req;

	/* We need to add any requests required to flush the objects and ring */
	WARN_ON(ring->outstanding_lazy_request);
	if (ring->outstanding_lazy_request)
		i915_add_request(ring->outstanding_lazy_request);

	/* Wait upon the last request to be completed */
	if (list_empty(&ring->request_list))
		return 0;
@@ -2339,8 +2333,6 @@ void intel_ring_init_seqno(struct intel_engine_cs *ring, u32 seqno)
	struct drm_device *dev = ring->dev;
	struct drm_i915_private *dev_priv = dev->dev_private;

	BUG_ON(ring->outstanding_lazy_request);

	if (INTEL_INFO(dev)->gen == 6 || INTEL_INFO(dev)->gen == 7) {
		I915_WRITE(RING_SYNC_0(ring->mmio_base), 0);
		I915_WRITE(RING_SYNC_1(ring->mmio_base), 0);
+0 −4
Original line number Diff line number Diff line
@@ -291,10 +291,6 @@ struct intel_engine_cs {
	 */
	struct list_head request_list;

	/**
	 * Do we have some not yet emitted requests outstanding?
	 */
	struct drm_i915_gem_request *outstanding_lazy_request;
	bool gpu_caches_dirty;

	wait_queue_head_t irq_queue;