aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_guc_reg.h
diff options
context:
space:
mode:
authorGravatar Arun Siluvery <arun.siluvery@linux.intel.com> 2016-04-04 18:50:56 +0100
committerGravatar Tvrtko Ursulin <tvrtko.ursulin@intel.com> 2016-04-05 13:29:24 +0100
commit6b332fa20f671265638d1d62496f9607c5f6e92f (patch)
tree1eacf76a2191fd93be61abcf069a2fe2e96b6813 /drivers/gpu/drm/i915/i915_guc_reg.h
parentdrm/i915/shrinker: Refactor common uninterruptible locking (diff)
downloadlinux-6b332fa20f671265638d1d62496f9607c5f6e92f.tar.gz
linux-6b332fa20f671265638d1d62496f9607c5f6e92f.tar.bz2
linux-6b332fa20f671265638d1d62496f9607c5f6e92f.zip
drm/i915/guc: reset GuC and retry on firmware load failure
Due to timing issues in the HW, some of the status bits required for GuC authentication occasionally don't get set; when that happens, the GuC cannot be initialized and we will be left with a wedged GPU. The W/A suggested is to perform a soft reset of the GuC and attempt to reload the F/W again for few times before giving up. As the failure is dependent on timing, tests performed by triggering manual full gpu reset (i915_wedged) showed that we could sometimes hit this after several thousand iterations, but sometimes tests ran even longer without any issues. Reset and reload mechanism proved helpful when we indeed hit f/w load failure, so it is better to include this to improve driver stability. This change implements the following WAs, WaEnableuKernelHeaderValidFix:skl,bxt WaEnableGuCBootHashCheckNotSet:skl,bxt Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com> Signed-off-by: Dave Gordon <david.s.gordon@intel.com> Reviewed-by: Alex Dai <yu.dai@intel.com> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_guc_reg.h')
-rw-r--r--drivers/gpu/drm/i915/i915_guc_reg.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_guc_reg.h b/drivers/gpu/drm/i915/i915_guc_reg.h
index e4ba5822289b..94ceee5f0544 100644
--- a/drivers/gpu/drm/i915/i915_guc_reg.h
+++ b/drivers/gpu/drm/i915/i915_guc_reg.h
@@ -27,6 +27,7 @@
/* Definitions of GuC H/W registers, bits, etc */
#define GUC_STATUS _MMIO(0xc000)
+#define GS_MIA_IN_RESET (1 << 0)
#define GS_BOOTROM_SHIFT 1
#define GS_BOOTROM_MASK (0x7F << GS_BOOTROM_SHIFT)
#define GS_BOOTROM_RSA_FAILED (0x50 << GS_BOOTROM_SHIFT)