Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdkfd: Add SDMA trap src id to the KFD isr wanted list

This enables SDMA signalling with event interrupt.

Signed-off-by: Besar Wicaksono <Besar.Wicaksono@amd.com>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>

authored by

Besar Wicaksono and committed by
Oded Gabbay
66b783b4 7a88cbd8

+5 -1
+3
drivers/gpu/drm/amd/amdkfd/cik_event_interrupt.c
··· 36 36 /* Do not process in ISR, just request it to be forwarded to WQ. */ 37 37 return (pasid != 0) && 38 38 (ihre->source_id == CIK_INTSRC_CP_END_OF_PIPE || 39 + ihre->source_id == CIK_INTSRC_SDMA_TRAP || 39 40 ihre->source_id == CIK_INTSRC_SQ_INTERRUPT_MSG || 40 41 ihre->source_id == CIK_INTSRC_CP_BAD_OPCODE); 41 42 } ··· 54 53 return; 55 54 56 55 if (ihre->source_id == CIK_INTSRC_CP_END_OF_PIPE) 56 + kfd_signal_event_interrupt(pasid, 0, 0); 57 + else if (ihre->source_id == CIK_INTSRC_SDMA_TRAP) 57 58 kfd_signal_event_interrupt(pasid, 0, 0); 58 59 else if (ihre->source_id == CIK_INTSRC_SQ_INTERRUPT_MSG) 59 60 kfd_signal_event_interrupt(pasid, ihre->data & 0xFF, 8);
+2 -1
drivers/gpu/drm/amd/amdkfd/cik_int.h
··· 32 32 uint32_t reserved; 33 33 }; 34 34 35 - #define CIK_INTSRC_DEQUEUE_COMPLETE 0xC6 36 35 #define CIK_INTSRC_CP_END_OF_PIPE 0xB5 37 36 #define CIK_INTSRC_CP_BAD_OPCODE 0xB7 37 + #define CIK_INTSRC_DEQUEUE_COMPLETE 0xC6 38 + #define CIK_INTSRC_SDMA_TRAP 0xE0 38 39 #define CIK_INTSRC_SQ_INTERRUPT_MSG 0xEF 39 40 40 41 #endif