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

Commit d200cda6 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915: Remove early l3-remap



Since we do the l3-remap on context switch, we can remove the redundant
early call to set the mapping prior to performing the first context
switch.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1461833819-3991-10-git-send-email-chris@chris-wilson.co.uk
parent ff55b5e8
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -3147,7 +3147,6 @@ bool i915_gem_clflush_object(struct drm_i915_gem_object *obj, bool force);
int __must_check i915_gem_init(struct drm_device *dev);
int __must_check i915_gem_init(struct drm_device *dev);
int i915_gem_init_engines(struct drm_device *dev);
int i915_gem_init_engines(struct drm_device *dev);
int __must_check i915_gem_init_hw(struct drm_device *dev);
int __must_check i915_gem_init_hw(struct drm_device *dev);
int i915_gem_l3_remap(struct drm_i915_gem_request *req, int slice);
void i915_gem_init_swizzling(struct drm_device *dev);
void i915_gem_init_swizzling(struct drm_device *dev);
void i915_gem_cleanup_engines(struct drm_device *dev);
void i915_gem_cleanup_engines(struct drm_device *dev);
int __must_check i915_gpu_idle(struct drm_device *dev);
int __must_check i915_gpu_idle(struct drm_device *dev);
+1 −9
Original line number Original line Diff line number Diff line
@@ -4842,7 +4842,7 @@ i915_gem_init_hw(struct drm_device *dev)
{
{
	struct drm_i915_private *dev_priv = dev->dev_private;
	struct drm_i915_private *dev_priv = dev->dev_private;
	struct intel_engine_cs *engine;
	struct intel_engine_cs *engine;
	int ret, j;
	int ret;


	if (INTEL_INFO(dev)->gen < 6 && !intel_enable_gtt())
	if (INTEL_INFO(dev)->gen < 6 && !intel_enable_gtt())
		return -EIO;
		return -EIO;
@@ -4924,14 +4924,6 @@ i915_gem_init_hw(struct drm_device *dev)
			break;
			break;
		}
		}


		if (engine->id == RCS) {
			for (j = 0; j < NUM_L3_SLICES(dev); j++) {
				ret = i915_gem_l3_remap(req, j);
				if (ret)
					goto err_request;
			}
		}

		ret = i915_ppgtt_init_ring(req);
		ret = i915_ppgtt_init_ring(req);
		if (ret)
		if (ret)
			goto err_request;
			goto err_request;
+2 −2
Original line number Original line Diff line number Diff line
@@ -601,7 +601,7 @@ mi_set_context(struct drm_i915_gem_request *req, u32 hw_flags)
	return ret;
	return ret;
}
}


int i915_gem_l3_remap(struct drm_i915_gem_request *req, int slice)
static int remap_l3(struct drm_i915_gem_request *req, int slice)
{
{
	u32 *remap_info = req->i915->l3_parity.remap_info[slice];
	u32 *remap_info = req->i915->l3_parity.remap_info[slice];
	struct intel_engine_cs *engine = req->engine;
	struct intel_engine_cs *engine = req->engine;
@@ -799,7 +799,7 @@ static int do_rcs_switch(struct drm_i915_gem_request *req)
		if (!(to->remap_slice & (1<<i)))
		if (!(to->remap_slice & (1<<i)))
			continue;
			continue;


		ret = i915_gem_l3_remap(req, i);
		ret = remap_l3(req, i);
		if (ret)
		if (ret)
			return ret;
			return ret;