[PATCH] drm/i915: Verify engine workarounds immediately after initialization
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed Dec 5 13:56:58 UTC 2018
From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
...
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
drivers/gpu/drm/i915/i915_drv.c | 1 +
drivers/gpu/drm/i915/i915_gem.c | 1 +
drivers/gpu/drm/i915/intel_engine_cs.c | 1 +
drivers/gpu/drm/i915/intel_workarounds.c | 6 +++---
drivers/gpu/drm/i915/intel_workarounds.h | 2 ++
5 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index b310a897a4ad..55ed0379b3a2 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -2393,6 +2393,7 @@ int i915_reset_engine(struct intel_engine_cs *engine, const char *msg)
if (ret)
goto out;
+ intel_engine_verify_workarounds(engine, "reset");
out:
intel_engine_cancel_stop_cs(engine);
i915_gem_reset_finish_engine(engine);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index d36a9755ad91..e8467a3507ff 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -5279,6 +5279,7 @@ static int __i915_gem_restart_engines(void *data)
engine->name, err);
return err;
}
+ intel_engine_verify_workarounds(engine, "restart");
}
return 0;
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
index af2873403009..aa73093449e4 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -27,6 +27,7 @@
#include "i915_drv.h"
#include "intel_ringbuffer.h"
#include "intel_lrc.h"
+#include "intel_workarounds.h"
/* Haswell does have the CXT_SIZE register however it does not appear to be
* valid. Now, docs explain in dwords what is in the context object. The full
diff --git a/drivers/gpu/drm/i915/intel_workarounds.c b/drivers/gpu/drm/i915/intel_workarounds.c
index 6bcac78a9c36..4f678c502daf 100644
--- a/drivers/gpu/drm/i915/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/intel_workarounds.c
@@ -1268,12 +1268,12 @@ void intel_engine_apply_workarounds(struct intel_engine_cs *engine)
wa_list_apply(engine->i915, &engine->wa_list);
}
-#if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
-static bool intel_engine_verify_workarounds(struct intel_engine_cs *engine,
- const char *from)
+bool intel_engine_verify_workarounds(struct intel_engine_cs *engine,
+ const char *from)
{
return wa_list_verify(engine->i915, &engine->wa_list, from);
}
+#if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
#include "selftests/intel_workarounds.c"
#endif
diff --git a/drivers/gpu/drm/i915/intel_workarounds.h b/drivers/gpu/drm/i915/intel_workarounds.h
index 7c734714b05e..04c0714d8c26 100644
--- a/drivers/gpu/drm/i915/intel_workarounds.h
+++ b/drivers/gpu/drm/i915/intel_workarounds.h
@@ -38,6 +38,8 @@ bool intel_gt_verify_workarounds(struct drm_i915_private *dev_priv,
void intel_engine_init_whitelist(struct intel_engine_cs *engine);
void intel_engine_apply_whitelist(struct intel_engine_cs *engine);
+bool intel_engine_verify_workarounds(struct intel_engine_cs *engine,
+ const char *from);
void intel_engine_init_workarounds(struct intel_engine_cs *engine);
void intel_engine_apply_workarounds(struct intel_engine_cs *engine);
--
2.19.1
More information about the Intel-gfx-trybot
mailing list