18d2f6e2fSTvrtko Ursulin /* 28d2f6e2fSTvrtko Ursulin * SPDX-License-Identifier: MIT 38d2f6e2fSTvrtko Ursulin * 48d2f6e2fSTvrtko Ursulin * Copyright © 2018 Intel Corporation 58d2f6e2fSTvrtko Ursulin */ 68d2f6e2fSTvrtko Ursulin 78d2f6e2fSTvrtko Ursulin #ifndef __I915_SELFTESTS_IGT_SPINNER_H__ 88d2f6e2fSTvrtko Ursulin #define __I915_SELFTESTS_IGT_SPINNER_H__ 98d2f6e2fSTvrtko Ursulin 1010be98a7SChris Wilson #include "gem/i915_gem_context.h" 11112ed2d3SChris Wilson #include "gt/intel_engine.h" 12112ed2d3SChris Wilson 1310be98a7SChris Wilson #include "i915_drv.h" 1410be98a7SChris Wilson #include "i915_request.h" 1510be98a7SChris Wilson #include "i915_selftest.h" 168d2f6e2fSTvrtko Ursulin 17baea429dSTvrtko Ursulin struct intel_gt; 18baea429dSTvrtko Ursulin 198d2f6e2fSTvrtko Ursulin struct igt_spinner { 20baea429dSTvrtko Ursulin struct intel_gt *gt; 218d2f6e2fSTvrtko Ursulin struct drm_i915_gem_object *hws; 228d2f6e2fSTvrtko Ursulin struct drm_i915_gem_object *obj; 23*c0525888SMaarten Lankhorst struct intel_context *ce; 24*c0525888SMaarten Lankhorst struct i915_vma *hws_vma, *batch_vma; 258d2f6e2fSTvrtko Ursulin u32 *batch; 268d2f6e2fSTvrtko Ursulin void *seqno; 278d2f6e2fSTvrtko Ursulin }; 288d2f6e2fSTvrtko Ursulin 29f277bc0cSChris Wilson int igt_spinner_init(struct igt_spinner *spin, struct intel_gt *gt); 30*c0525888SMaarten Lankhorst int igt_spinner_pin(struct igt_spinner *spin, 31*c0525888SMaarten Lankhorst struct intel_context *ce, 32*c0525888SMaarten Lankhorst struct i915_gem_ww_ctx *ww); 338d2f6e2fSTvrtko Ursulin void igt_spinner_fini(struct igt_spinner *spin); 348d2f6e2fSTvrtko Ursulin 358d2f6e2fSTvrtko Ursulin struct i915_request * 368d2f6e2fSTvrtko Ursulin igt_spinner_create_request(struct igt_spinner *spin, 37f277bc0cSChris Wilson struct intel_context *ce, 388d2f6e2fSTvrtko Ursulin u32 arbitration_command); 398d2f6e2fSTvrtko Ursulin void igt_spinner_end(struct igt_spinner *spin); 408d2f6e2fSTvrtko Ursulin 418d2f6e2fSTvrtko Ursulin bool igt_wait_for_spinner(struct igt_spinner *spin, struct i915_request *rq); 428d2f6e2fSTvrtko Ursulin 438d2f6e2fSTvrtko Ursulin #endif 44