xref: /linux/drivers/gpu/drm/xe/xe_wa.h (revision be239684b18e1cdcafcf8c7face4a2f562c745ad)
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2022 Intel Corporation
4  */
5 
6 #ifndef _XE_WA_
7 #define _XE_WA_
8 
9 struct drm_printer;
10 struct xe_gt;
11 struct xe_hw_engine;
12 struct xe_tile;
13 
14 int xe_wa_init(struct xe_gt *gt);
15 void xe_wa_process_oob(struct xe_gt *gt);
16 void xe_wa_process_gt(struct xe_gt *gt);
17 void xe_wa_process_engine(struct xe_hw_engine *hwe);
18 void xe_wa_process_lrc(struct xe_hw_engine *hwe);
19 void xe_wa_apply_tile_workarounds(struct xe_tile *tile);
20 
21 void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe);
22 void xe_wa_dump(struct xe_gt *gt, struct drm_printer *p);
23 
24 /**
25  * XE_WA - Out-of-band workarounds, that don't fit the lifecycle any
26  *         other more specific type
27  * @gt__: gt instance
28  * @id__: XE_OOB_<id__>, as generated by build system in generated/xe_wa_oob.h
29  */
30 #define XE_WA(gt__, id__) test_bit(XE_WA_OOB_ ## id__, (gt__)->wa_active.oob)
31 
32 #endif
33