1 /*
2  * SPDX-License-Identifier: MIT
3  *
4  * Copyright © 2019 Intel Corporation
5  */
6 
7 #ifndef IGT_LIVE_TEST_H
8 #define IGT_LIVE_TEST_H
9 
10 #include "gt/intel_gt_defines.h" /* for I915_MAX_GT */
11 #include "gt/intel_engine.h" /* for I915_NUM_ENGINES */
12 
13 struct drm_i915_private;
14 
15 struct igt_live_test {
16 	struct drm_i915_private *i915;
17 	const char *func;
18 	const char *name;
19 
20 	unsigned int reset_global;
21 	unsigned int reset_engine[I915_MAX_GT][I915_NUM_ENGINES];
22 };
23 
24 /*
25  * Flush the GPU state before and after the test to ensure that no residual
26  * code is running on the GPU that may affect this test. Also compare the
27  * state before and after the test and alert if it unexpectedly changes,
28  * e.g. if the GPU was reset.
29  */
30 int igt_live_test_begin(struct igt_live_test *t,
31 			struct drm_i915_private *i915,
32 			const char *func,
33 			const char *name);
34 int igt_live_test_end(struct igt_live_test *t);
35 
36 #endif /* IGT_LIVE_TEST_H */
37