intel_workarounds.h 1.1 KB

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