From: Chris Wilson Date: Thu, 2 Nov 2017 13:14:30 +0000 (+0000) Subject: drm/i915: Set up mocs tables before restarting the engines X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=136109c67f67ebe449032950ddc3ad5118934635;p=openwrt%2Fstaging%2Fblogic.git 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 Link: https://patchwork.freedesktop.org/patch/msgid/20171102131430.22328-1-chris@chris-wilson.co.uk --- diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 9470ba0c1930..6a71805be389 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/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;