1*b87f920bSLizhi Hou /* SPDX-License-Identifier: GPL-2.0 */ 2*b87f920bSLizhi Hou /* 3*b87f920bSLizhi Hou * Copyright (C) 2023-2024, Advanced Micro Devices, Inc. 4*b87f920bSLizhi Hou */ 5*b87f920bSLizhi Hou 6*b87f920bSLizhi Hou #undef TRACE_SYSTEM 7*b87f920bSLizhi Hou #define TRACE_SYSTEM amdxdna 8*b87f920bSLizhi Hou 9*b87f920bSLizhi Hou #if !defined(_TRACE_AMDXDNA_H) || defined(TRACE_HEADER_MULTI_READ) 10*b87f920bSLizhi Hou #define _TRACE_AMDXDNA_H 11*b87f920bSLizhi Hou 12*b87f920bSLizhi Hou #include <linux/tracepoint.h> 13*b87f920bSLizhi Hou 14*b87f920bSLizhi Hou DECLARE_EVENT_CLASS(xdna_mbox_msg, 15*b87f920bSLizhi Hou TP_PROTO(char *name, u8 chann_id, u32 opcode, u32 msg_id), 16*b87f920bSLizhi Hou 17*b87f920bSLizhi Hou TP_ARGS(name, chann_id, opcode, msg_id), 18*b87f920bSLizhi Hou 19*b87f920bSLizhi Hou TP_STRUCT__entry(__string(name, name) 20*b87f920bSLizhi Hou __field(u32, chann_id) 21*b87f920bSLizhi Hou __field(u32, opcode) 22*b87f920bSLizhi Hou __field(u32, msg_id)), 23*b87f920bSLizhi Hou 24*b87f920bSLizhi Hou TP_fast_assign(__assign_str(name); 25*b87f920bSLizhi Hou __entry->chann_id = chann_id; 26*b87f920bSLizhi Hou __entry->opcode = opcode; 27*b87f920bSLizhi Hou __entry->msg_id = msg_id;), 28*b87f920bSLizhi Hou 29*b87f920bSLizhi Hou TP_printk("%s.%d id 0x%x opcode 0x%x", __get_str(name), 30*b87f920bSLizhi Hou __entry->chann_id, __entry->msg_id, __entry->opcode) 31*b87f920bSLizhi Hou ); 32*b87f920bSLizhi Hou 33*b87f920bSLizhi Hou DEFINE_EVENT(xdna_mbox_msg, mbox_set_tail, 34*b87f920bSLizhi Hou TP_PROTO(char *name, u8 chann_id, u32 opcode, u32 id), 35*b87f920bSLizhi Hou TP_ARGS(name, chann_id, opcode, id) 36*b87f920bSLizhi Hou ); 37*b87f920bSLizhi Hou 38*b87f920bSLizhi Hou DEFINE_EVENT(xdna_mbox_msg, mbox_set_head, 39*b87f920bSLizhi Hou TP_PROTO(char *name, u8 chann_id, u32 opcode, u32 id), 40*b87f920bSLizhi Hou TP_ARGS(name, chann_id, opcode, id) 41*b87f920bSLizhi Hou ); 42*b87f920bSLizhi Hou 43*b87f920bSLizhi Hou TRACE_EVENT(mbox_irq_handle, 44*b87f920bSLizhi Hou TP_PROTO(char *name, int irq), 45*b87f920bSLizhi Hou 46*b87f920bSLizhi Hou TP_ARGS(name, irq), 47*b87f920bSLizhi Hou 48*b87f920bSLizhi Hou TP_STRUCT__entry(__string(name, name) 49*b87f920bSLizhi Hou __field(int, irq)), 50*b87f920bSLizhi Hou 51*b87f920bSLizhi Hou TP_fast_assign(__assign_str(name); 52*b87f920bSLizhi Hou __entry->irq = irq;), 53*b87f920bSLizhi Hou 54*b87f920bSLizhi Hou TP_printk("%s.%d", __get_str(name), __entry->irq) 55*b87f920bSLizhi Hou ); 56*b87f920bSLizhi Hou 57*b87f920bSLizhi Hou #endif /* !defined(_TRACE_AMDXDNA_H) || defined(TRACE_HEADER_MULTI_READ) */ 58*b87f920bSLizhi Hou 59*b87f920bSLizhi Hou /* This part must be outside protection */ 60*b87f920bSLizhi Hou #include <trace/define_trace.h> 61