From ce453b3e426f33eb56e5425f0b839f75eed621d9 Mon Sep 17 00:00:00 2001 From: Michel Thierry Date: Fri, 10 Nov 2017 16:44:47 -0800 Subject: [PATCH] drm/i915: Clear per-engine fault register as early as possible Git-commit: ce453b3e426f33eb56e5425f0b839f75eed621d9 Patch-mainline: v4.16-rc1 References: FATE#322643 bsc#1055900 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 Signed-off-by: Michel Thierry Cc: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20171111004448.12360-1-michel.thierry@intel.com Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Acked-by: Takashi Iwai --- drivers/gpu/drm/i915/intel_engine_cs.c | 2 ++ drivers/gpu/drm/i915/intel_uncore.c | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) --- a/drivers/gpu/drm/i915/intel_engine_cs.c +++ b/drivers/gpu/drm/i915/intel_engine_cs.c @@ -289,6 +289,8 @@ int intel_engines_init_mmio(struct drm_i device_info->num_rings = hweight32(mask); + i915_check_and_clear_faults(dev_priv); + return 0; cleanup: --- a/drivers/gpu/drm/i915/intel_uncore.c +++ b/drivers/gpu/drm/i915/intel_uncore.c @@ -1433,8 +1433,6 @@ void intel_uncore_init(struct drm_i915_p 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)