#include "kfd_priv.h"
#include "kfd_events.h"
#include "soc15_int.h"
#include "kfd_device_queue_manager.h"
#include "ivsrcid/vmc/irqsrcs_vmc_1_0.h"
#include "kfd_smi_events.h"
#include "kfd_debug.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_BUF_FULL__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__REG_TIMESTAMP__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__CMD_TIMESTAMP__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__HOST_CMD_OVERFLOW__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__HOST_REG_OVERFLOW__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__IMMED_OVERFLOW__SHIFT …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__THREAD_TRACE_UTC_ERROR__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_BUF_FULL_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__REG_TIMESTAMP_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__CMD_TIMESTAMP_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__HOST_CMD_OVERFLOW_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__HOST_REG_OVERFLOW_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__IMMED_OVERFLOW_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID0__THREAD_TRACE_UTC_ERROR_MASK …
#define SQ_INTERRUPT_WORD_AUTO_CTXID1__ENCODING_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__DATA__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__SH_ID__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__PRIV__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__WAVE_ID__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__SIMD_ID__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__WGP_ID__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__ENCODING__SHIFT …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__DATA_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__SH_ID_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__PRIV_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID0__WAVE_ID_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__SIMD_ID_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__WGP_ID_MASK …
#define SQ_INTERRUPT_WORD_WAVE_CTXID1__ENCODING_MASK …
#define SQ_INTERRUPT_WORD_ERROR_CTXID0__DETAIL__SHIFT …
#define SQ_INTERRUPT_WORD_ERROR_CTXID0__TYPE__SHIFT …
#define SQ_INTERRUPT_WORD_ERROR_CTXID0__SH_ID__SHIFT …
#define SQ_INTERRUPT_WORD_ERROR_CTXID0__PRIV__SHIFT …
#define SQ_INTERRUPT_WORD_ERROR_CTXID0__WAVE_ID__SHIFT …
#define SQ_INTERRUPT_WORD_ERROR_CTXID1__SIMD_ID__SHIFT …
#define SQ_INTERRUPT_WORD_ERROR_CTXID1__WGP_ID__SHIFT …
#define SQ_INTERRUPT_WORD_ERROR_CTXID1__ENCODING__SHIFT …
#define SQ_INTERRUPT_WORD_ERROR_CTXID0__DETAIL_MASK …
#define SQ_INTERRUPT_WORD_ERROR_CTXID0__TYPE_MASK …
#define SQ_INTERRUPT_WORD_ERROR_CTXID0__SH_ID_MASK …
#define SQ_INTERRUPT_WORD_ERROR_CTXID0__PRIV_MASK …
#define SQ_INTERRUPT_WORD_ERROR_CTXID0__WAVE_ID_MASK …
#define SQ_INTERRUPT_WORD_ERROR_CTXID1__SIMD_ID_MASK …
#define SQ_INTERRUPT_WORD_ERROR_CTXID1__WGP_ID_MASK …
#define SQ_INTERRUPT_WORD_ERROR_CTXID1__ENCODING_MASK …
#define KFD_CTXID0_TRAP_CODE_SHIFT …
#define KFD_CTXID0_TRAP_CODE_MASK …
#define KFD_CTXID0_CP_BAD_OP_ECODE_MASK …
#define KFD_CTXID0_DOORBELL_ID_MASK …
#define KFD_CTXID0_TRAP_CODE(ctxid0) …
#define KFD_CTXID0_CP_BAD_OP_ECODE(ctxid0) …
#define KFD_CTXID0_DOORBELL_ID(ctxid0) …
static void print_sq_intr_info_auto(uint32_t context_id0, uint32_t context_id1)
{ … }
static void print_sq_intr_info_inst(uint32_t context_id0, uint32_t context_id1)
{ … }
static void print_sq_intr_info_error(uint32_t context_id0, uint32_t context_id1)
{ … }
static void event_interrupt_poison_consumption_v11(struct kfd_node *dev,
uint16_t pasid, uint16_t source_id)
{ … }
static bool event_interrupt_isr_v11(struct kfd_node *dev,
const uint32_t *ih_ring_entry,
uint32_t *patched_ihre,
bool *patched_flag)
{ … }
static void event_interrupt_wq_v11(struct kfd_node *dev,
const uint32_t *ih_ring_entry)
{ … }
const struct kfd_event_interrupt_class event_interrupt_class_v11 = …;