#include "kfd_events.h"
#include "kfd_debug.h"
#include "soc15_int.h"
#include "kfd_device_queue_manager.h"
enum SQ_INTERRUPT_WORD_ENCODING { … };
enum SQ_INTERRUPT_ERROR_TYPE { … };
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__THREAD_TRACE__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__WLT__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__THREAD_TRACE_BUF0_FULL__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__THREAD_TRACE_BUF1_FULL__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__THREAD_TRACE_UTC_ERROR__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID1__SE_ID__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID1__ENCODING__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__THREAD_TRACE_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__WLT_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__THREAD_TRACE_BUF0_FULL_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__THREAD_TRACE_BUF1_FULL_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__THREAD_TRACE_UTC_ERROR_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID1__SE_ID_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID1__ENCODING_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__DATA__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__SA_ID__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__PRIV__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__WAVE_ID__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__SIMD_ID__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__WGP_ID__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__SE_ID__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__ENCODING__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__DATA_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__SA_ID_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__PRIV_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__WAVE_ID_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__SIMD_ID_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__WGP_ID_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__SE_ID_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__ENCODING_MASK …
#define KFD_CTXID0__ERR_TYPE_MASK …
#define KFD_CTXID0__ERR_TYPE__SHIFT …
#define KFD_CONTEXT_ID1_ENC_TYPE_WAVE_MASK …
#define KFD_CONTEXT_ID0_PRIV_MASK …
#define KFD_CONTEXT_ID0_DEBUG_DOORBELL_MASK …
#define KFD_CONTEXT_ID0_DEBUG_TRAP_CODE_SHIFT …
#define KFD_CONTEXT_ID0_DEBUG_TRAP_CODE_MASK …
#define KFD_DEBUG_DOORBELL_ID(ctxid0) …
#define KFD_DEBUG_TRAP_CODE(ctxid0) …
#define KFD_DEBUG_CP_BAD_OP_ECODE_MASK …
#define KFD_DEBUG_CP_BAD_OP_ECODE_SHIFT …
#define KFD_DEBUG_CP_BAD_OP_ECODE(ctxid0) …
static void event_interrupt_poison_consumption(struct kfd_node *dev,
uint16_t pasid, uint16_t client_id)
{ … }
static bool event_interrupt_isr_v10(struct kfd_node *dev,
const uint32_t *ih_ring_entry,
uint32_t *patched_ihre,
bool *patched_flag)
{ … }
static void event_interrupt_wq_v10(struct kfd_node *dev,
const uint32_t *ih_ring_entry)
{ … }
const struct kfd_event_interrupt_class event_interrupt_class_v10 = …;