2018-04-11 00:12:46 +08:00
|
|
|
/*
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
*
|
|
|
|
* Copyright © 2014-2018 Intel Corporation
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _I915_WORKAROUNDS_H_
|
|
|
|
#define _I915_WORKAROUNDS_H_
|
|
|
|
|
2018-12-03 21:33:19 +08:00
|
|
|
#include <linux/slab.h>
|
|
|
|
|
|
|
|
struct i915_wa {
|
|
|
|
i915_reg_t reg;
|
|
|
|
u32 mask;
|
|
|
|
u32 val;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct i915_wa_list {
|
|
|
|
const char *name;
|
|
|
|
struct i915_wa *list;
|
|
|
|
unsigned int count;
|
|
|
|
};
|
|
|
|
|
|
|
|
static inline void intel_wa_list_free(struct i915_wa_list *wal)
|
|
|
|
{
|
|
|
|
kfree(wal->list);
|
|
|
|
memset(wal, 0, sizeof(*wal));
|
|
|
|
}
|
|
|
|
|
2018-04-11 00:12:47 +08:00
|
|
|
int intel_ctx_workarounds_init(struct drm_i915_private *dev_priv);
|
|
|
|
int intel_ctx_workarounds_emit(struct i915_request *rq);
|
|
|
|
|
2018-12-03 21:33:19 +08:00
|
|
|
void intel_gt_init_workarounds(struct drm_i915_private *dev_priv);
|
|
|
|
void intel_gt_apply_workarounds(struct drm_i915_private *dev_priv);
|
2018-04-11 00:12:47 +08:00
|
|
|
|
2018-04-14 20:27:54 +08:00
|
|
|
void intel_whitelist_workarounds_apply(struct intel_engine_cs *engine);
|
2018-04-11 00:12:46 +08:00
|
|
|
|
|
|
|
#endif
|