Browse Source

drm/i915: Set up mocs tables before restarting the engines

After a reset, we may immediately begin executing requests on restarting
the engines. Ergo this has to be last step with all re-initialisation
completed beforehand. The mocs setup was after we started executing the
requests; do it earlier!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171102131430.22328-1-chris@chris-wilson.co.uk
Chris Wilson 8 years ago
parent
commit
136109c67f
1 changed files with 2 additions and 5 deletions
  1. 2 5
      drivers/gpu/drm/i915/i915_gem.c

+ 2 - 5
drivers/gpu/drm/i915/i915_gem.c

@@ -4936,13 +4936,10 @@ int i915_gem_init_hw(struct drm_i915_private *dev_priv)
 	if (ret)
 		goto out;
 
-	/* Need to do basic initialisation of all rings first: */
-	ret = __i915_gem_restart_engines(dev_priv);
-	if (ret)
-		goto out;
-
 	intel_mocs_init_l3cc_table(dev_priv);
 
+	/* Only when the HW is re-initialised, can we replay the requests */
+	ret = __i915_gem_restart_engines(dev_priv);
 out:
 	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
 	return ret;