[PATCH 4/4] eng wa verify
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed Nov 28 12:51:31 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_gem.c | 7 +++++++
drivers/gpu/drm/i915/intel_workarounds.c | 6 ++++++
drivers/gpu/drm/i915/intel_workarounds.h | 2 ++
3 files changed, 15 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 4da93642a80e..c739a30fe2fd 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -139,6 +139,9 @@ int i915_mutex_lock_interruptible(struct drm_device *dev)
static u32 __i915_gem_park(struct drm_i915_private *i915)
{
+ struct intel_engine_cs *engine;
+ enum intel_engine_id id;
+
GEM_TRACE("\n");
lockdep_assert_held(&i915->drm.struct_mutex);
@@ -168,6 +171,10 @@ static u32 __i915_gem_park(struct drm_i915_private *i915)
*/
intel_gt_workarounds_verify(i915, "idle");
+ /* Same for engine workarounds. */
+ for_each_engine(engine, i915, id)
+ intel_engine_workarounds_verify(engine, "idle");
+
intel_engines_park(i915);
i915_timelines_park(i915);
diff --git a/drivers/gpu/drm/i915/intel_workarounds.c b/drivers/gpu/drm/i915/intel_workarounds.c
index 58d92b1d4c1c..6a11974659aa 100644
--- a/drivers/gpu/drm/i915/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/intel_workarounds.c
@@ -1336,6 +1336,12 @@ void intel_engine_workarounds_apply(struct intel_engine_cs *engine)
wa_list_apply(engine->i915, &engine->wa_list);
}
+void intel_engine_workarounds_verify(struct intel_engine_cs *engine,
+ const char *from)
+{
+ 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 7e77fdc4d1a3..1f503c384f9e 100644
--- a/drivers/gpu/drm/i915/intel_workarounds.h
+++ b/drivers/gpu/drm/i915/intel_workarounds.h
@@ -38,5 +38,7 @@ void intel_whitelist_workarounds_apply(struct intel_engine_cs *engine);
void intel_engine_workarounds_init(struct intel_engine_cs *engine);
void intel_engine_workarounds_apply(struct intel_engine_cs *engine);
+void intel_engine_workarounds_verify(struct intel_engine_cs *engine,
+ const char *from);
#endif
--
2.19.1
More information about the Intel-gfx-trybot
mailing list