1112ed2d3SChris Wilson /*
2112ed2d3SChris Wilson  * SPDX-License-Identifier: MIT
3112ed2d3SChris Wilson  *
4112ed2d3SChris Wilson  * Copyright © 2014-2018 Intel Corporation
5112ed2d3SChris Wilson  */
6112ed2d3SChris Wilson 
7112ed2d3SChris Wilson #ifndef _INTEL_WORKAROUNDS_H_
8112ed2d3SChris Wilson #define _INTEL_WORKAROUNDS_H_
9112ed2d3SChris Wilson 
10112ed2d3SChris Wilson #include <linux/slab.h>
11112ed2d3SChris Wilson 
12112ed2d3SChris Wilson #include "intel_workarounds_types.h"
13112ed2d3SChris Wilson 
14112ed2d3SChris Wilson struct drm_i915_private;
15112ed2d3SChris Wilson struct i915_request;
16112ed2d3SChris Wilson struct intel_engine_cs;
17d10cfee4STvrtko Ursulin struct intel_gt;
18112ed2d3SChris Wilson 
19112ed2d3SChris Wilson static inline void intel_wa_list_free(struct i915_wa_list *wal)
20112ed2d3SChris Wilson {
21112ed2d3SChris Wilson 	kfree(wal->list);
22112ed2d3SChris Wilson 	memset(wal, 0, sizeof(*wal));
23112ed2d3SChris Wilson }
24112ed2d3SChris Wilson 
25112ed2d3SChris Wilson void intel_engine_init_ctx_wa(struct intel_engine_cs *engine);
26112ed2d3SChris Wilson int intel_engine_emit_ctx_wa(struct i915_request *rq);
27112ed2d3SChris Wilson 
28112ed2d3SChris Wilson void intel_gt_init_workarounds(struct drm_i915_private *i915);
29d10cfee4STvrtko Ursulin void intel_gt_apply_workarounds(struct intel_gt *gt);
30d10cfee4STvrtko Ursulin bool intel_gt_verify_workarounds(struct intel_gt *gt, const char *from);
31112ed2d3SChris Wilson 
32112ed2d3SChris Wilson void intel_engine_init_whitelist(struct intel_engine_cs *engine);
33112ed2d3SChris Wilson void intel_engine_apply_whitelist(struct intel_engine_cs *engine);
34112ed2d3SChris Wilson 
35112ed2d3SChris Wilson void intel_engine_init_workarounds(struct intel_engine_cs *engine);
36112ed2d3SChris Wilson void intel_engine_apply_workarounds(struct intel_engine_cs *engine);
37112ed2d3SChris Wilson int intel_engine_verify_workarounds(struct intel_engine_cs *engine,
38112ed2d3SChris Wilson 				    const char *from);
39112ed2d3SChris Wilson 
40112ed2d3SChris Wilson #endif
41