Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: MIT */
0002 /*
0003  * Copyright © 2014-2018 Intel Corporation
0004  */
0005 
0006 #ifndef _INTEL_WORKAROUNDS_H_
0007 #define _INTEL_WORKAROUNDS_H_
0008 
0009 #include <linux/slab.h>
0010 
0011 #include "intel_workarounds_types.h"
0012 
0013 struct drm_i915_private;
0014 struct i915_request;
0015 struct intel_engine_cs;
0016 struct intel_gt;
0017 
0018 static inline void intel_wa_list_free(struct i915_wa_list *wal)
0019 {
0020     kfree(wal->list);
0021     memset(wal, 0, sizeof(*wal));
0022 }
0023 
0024 void intel_engine_init_ctx_wa(struct intel_engine_cs *engine);
0025 int intel_engine_emit_ctx_wa(struct i915_request *rq);
0026 
0027 void intel_gt_init_workarounds(struct intel_gt *gt);
0028 void intel_gt_apply_workarounds(struct intel_gt *gt);
0029 bool intel_gt_verify_workarounds(struct intel_gt *gt, const char *from);
0030 
0031 void intel_engine_init_whitelist(struct intel_engine_cs *engine);
0032 void intel_engine_apply_whitelist(struct intel_engine_cs *engine);
0033 
0034 void intel_engine_init_workarounds(struct intel_engine_cs *engine);
0035 void intel_engine_apply_workarounds(struct intel_engine_cs *engine);
0036 int intel_engine_verify_workarounds(struct intel_engine_cs *engine,
0037                     const char *from);
0038 
0039 #endif