]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: Clear per-engine fault register as early as possible
authorMichel Thierry <michel.thierry@intel.com>
Sat, 11 Nov 2017 00:44:47 +0000 (16:44 -0800)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 13 Nov 2017 19:03:13 +0000 (19:03 +0000)
From gen6, the hardware tracks address lookup failures and we should
clear those registers upon startup to prevent false positives. However,
this was happening before we have the engines defined (intel_uncore_init())
and the for_each_engine loop was just a nop. The earliest we can call
this is inside intel_engines_init_mmio().

Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171111004448.12360-1-michel.thierry@intel.com
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/intel_engine_cs.c
drivers/gpu/drm/i915/intel_uncore.c

index a0f9d0eb4bce97a1c25bb00ca134153ff72892a3..70bbe8ef8f54f5897b79c7c6dd6c01dd35e1cd73 100644 (file)
@@ -289,6 +289,8 @@ int intel_engines_init_mmio(struct drm_i915_private *dev_priv)
 
        device_info->num_rings = hweight32(mask);
 
+       i915_check_and_clear_faults(dev_priv);
+
        return 0;
 
 cleanup:
index 211acee7c31da6fab17674bf187fea3c9cfbe821..a78ceafcc82546380b17df3bef13366839578023 100644 (file)
@@ -1420,8 +1420,6 @@ void intel_uncore_init(struct drm_i915_private *dev_priv)
 
        iosf_mbi_register_pmic_bus_access_notifier(
                &dev_priv->uncore.pmic_bus_access_nb);
-
-       i915_check_and_clear_faults(dev_priv);
 }
 
 void intel_uncore_fini(struct drm_i915_private *dev_priv)