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