Oscar Mateo | 7d3c425 | 2018-04-10 09:12:46 -0700 | [diff] [blame] | 1 | /* |
| 2 | * SPDX-License-Identifier: MIT |
| 3 | * |
| 4 | * Copyright © 2014-2018 Intel Corporation |
| 5 | */ |
| 6 | |
| 7 | #ifndef _I915_WORKAROUNDS_H_ |
| 8 | #define _I915_WORKAROUNDS_H_ |
| 9 | |
Tvrtko Ursulin | 0093677 | 2018-12-05 11:33:23 +0000 | [diff] [blame] | 10 | #include <linux/slab.h> |
| 11 | |
| 12 | struct i915_wa { |
| 13 | i915_reg_t reg; |
| 14 | u32 mask; |
| 15 | u32 val; |
| 16 | }; |
| 17 | |
| 18 | struct i915_wa_list { |
| 19 | const char *name; |
| 20 | struct i915_wa *list; |
| 21 | unsigned int count; |
| 22 | }; |
| 23 | |
| 24 | static inline void intel_wa_list_free(struct i915_wa_list *wal) |
| 25 | { |
| 26 | kfree(wal->list); |
| 27 | memset(wal, 0, sizeof(*wal)); |
| 28 | } |
| 29 | |
Oscar Mateo | 59b449d | 2018-04-10 09:12:47 -0700 | [diff] [blame] | 30 | int intel_ctx_workarounds_init(struct drm_i915_private *dev_priv); |
| 31 | int intel_ctx_workarounds_emit(struct i915_request *rq); |
| 32 | |
Tvrtko Ursulin | 0093677 | 2018-12-05 11:33:23 +0000 | [diff] [blame] | 33 | void intel_gt_init_workarounds(struct drm_i915_private *dev_priv); |
| 34 | void intel_gt_apply_workarounds(struct drm_i915_private *dev_priv); |
Oscar Mateo | 59b449d | 2018-04-10 09:12:47 -0700 | [diff] [blame] | 35 | |
Chris Wilson | f4ecfbf | 2018-04-14 13:27:54 +0100 | [diff] [blame] | 36 | void intel_whitelist_workarounds_apply(struct intel_engine_cs *engine); |
Oscar Mateo | 7d3c425 | 2018-04-10 09:12:46 -0700 | [diff] [blame] | 37 | |
Tvrtko Ursulin | 90098ef | 2018-12-05 11:33:24 +0000 | [diff] [blame] | 38 | void intel_engine_init_workarounds(struct intel_engine_cs *engine); |
| 39 | void intel_engine_apply_workarounds(struct intel_engine_cs *engine); |
| 40 | |
Oscar Mateo | 7d3c425 | 2018-04-10 09:12:46 -0700 | [diff] [blame] | 41 | #endif |