intel_workarounds.h 925 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * SPDX-License-Identifier: MIT
  3. *
  4. * Copyright © 2014-2018 Intel Corporation
  5. */
  6. #ifndef _I915_WORKAROUNDS_H_
  7. #define _I915_WORKAROUNDS_H_
  8. #include <linux/slab.h>
  9. struct i915_wa {
  10. i915_reg_t reg;
  11. u32 mask;
  12. u32 val;
  13. };
  14. struct i915_wa_list {
  15. const char *name;
  16. struct i915_wa *list;
  17. unsigned int count;
  18. };
  19. static inline void intel_wa_list_free(struct i915_wa_list *wal)
  20. {
  21. kfree(wal->list);
  22. memset(wal, 0, sizeof(*wal));
  23. }
  24. int intel_ctx_workarounds_init(struct drm_i915_private *dev_priv);
  25. int intel_ctx_workarounds_emit(struct i915_request *rq);
  26. void intel_gt_init_workarounds(struct drm_i915_private *dev_priv);
  27. void intel_gt_apply_workarounds(struct drm_i915_private *dev_priv);
  28. void intel_whitelist_workarounds_apply(struct intel_engine_cs *engine);
  29. void intel_engine_init_workarounds(struct intel_engine_cs *engine);
  30. void intel_engine_apply_workarounds(struct intel_engine_cs *engine);
  31. #endif