Loading...
1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2014-2018 Intel Corporation
4 */
5
6#ifndef _INTEL_WORKAROUNDS_H_
7#define _INTEL_WORKAROUNDS_H_
8
9#include <linux/slab.h>
10
11#include "intel_workarounds_types.h"
12
13struct drm_i915_private;
14struct i915_request;
15struct intel_engine_cs;
16struct intel_gt;
17
18static inline void intel_wa_list_free(struct i915_wa_list *wal)
19{
20 kfree(wal->list);
21 memset(wal, 0, sizeof(*wal));
22}
23
24void intel_engine_init_ctx_wa(struct intel_engine_cs *engine);
25int intel_engine_emit_ctx_wa(struct i915_request *rq);
26
27void intel_gt_init_workarounds(struct intel_gt *gt);
28void intel_gt_apply_workarounds(struct intel_gt *gt);
29bool intel_gt_verify_workarounds(struct intel_gt *gt, const char *from);
30
31void intel_engine_init_whitelist(struct intel_engine_cs *engine);
32void intel_engine_apply_whitelist(struct intel_engine_cs *engine);
33
34void intel_engine_init_workarounds(struct intel_engine_cs *engine);
35void intel_engine_apply_workarounds(struct intel_engine_cs *engine);
36int intel_engine_verify_workarounds(struct intel_engine_cs *engine,
37 const char *from);
38
39#endif
1/*
2 * SPDX-License-Identifier: MIT
3 *
4 * Copyright © 2014-2018 Intel Corporation
5 */
6
7#ifndef _INTEL_WORKAROUNDS_H_
8#define _INTEL_WORKAROUNDS_H_
9
10#include <linux/slab.h>
11
12#include "intel_workarounds_types.h"
13
14struct drm_i915_private;
15struct i915_request;
16struct intel_engine_cs;
17struct intel_gt;
18
19static inline void intel_wa_list_free(struct i915_wa_list *wal)
20{
21 kfree(wal->list);
22 memset(wal, 0, sizeof(*wal));
23}
24
25void intel_engine_init_ctx_wa(struct intel_engine_cs *engine);
26int intel_engine_emit_ctx_wa(struct i915_request *rq);
27
28void intel_gt_init_workarounds(struct drm_i915_private *i915);
29void intel_gt_apply_workarounds(struct intel_gt *gt);
30bool intel_gt_verify_workarounds(struct intel_gt *gt, const char *from);
31
32void intel_engine_init_whitelist(struct intel_engine_cs *engine);
33void intel_engine_apply_whitelist(struct intel_engine_cs *engine);
34
35void intel_engine_init_workarounds(struct intel_engine_cs *engine);
36void intel_engine_apply_workarounds(struct intel_engine_cs *engine);
37int intel_engine_verify_workarounds(struct intel_engine_cs *engine,
38 const char *from);
39
40#endif