1*8ba1edb9SCezary Rojewski /* SPDX-License-Identifier: GPL-2.0-only */ 2*8ba1edb9SCezary Rojewski /* 3*8ba1edb9SCezary Rojewski * Copyright(c) 2020 Intel Corporation. All rights reserved. 4*8ba1edb9SCezary Rojewski * 5*8ba1edb9SCezary Rojewski * Author: Cezary Rojewski <cezary.rojewski@intel.com> 6*8ba1edb9SCezary Rojewski */ 7*8ba1edb9SCezary Rojewski 8*8ba1edb9SCezary Rojewski #undef TRACE_SYSTEM 9*8ba1edb9SCezary Rojewski #define TRACE_SYSTEM intel_catpt 10*8ba1edb9SCezary Rojewski 11*8ba1edb9SCezary Rojewski #if !defined(__SND_SOC_INTEL_CATPT_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 12*8ba1edb9SCezary Rojewski #define __SND_SOC_INTEL_CATPT_TRACE_H 13*8ba1edb9SCezary Rojewski 14*8ba1edb9SCezary Rojewski #include <linux/types.h> 15*8ba1edb9SCezary Rojewski #include <linux/tracepoint.h> 16*8ba1edb9SCezary Rojewski 17*8ba1edb9SCezary Rojewski DECLARE_EVENT_CLASS(catpt_ipc_msg, 18*8ba1edb9SCezary Rojewski 19*8ba1edb9SCezary Rojewski TP_PROTO(u32 header), 20*8ba1edb9SCezary Rojewski 21*8ba1edb9SCezary Rojewski TP_ARGS(header), 22*8ba1edb9SCezary Rojewski 23*8ba1edb9SCezary Rojewski TP_STRUCT__entry( 24*8ba1edb9SCezary Rojewski __field(u32, header) 25*8ba1edb9SCezary Rojewski ), 26*8ba1edb9SCezary Rojewski 27*8ba1edb9SCezary Rojewski TP_fast_assign( 28*8ba1edb9SCezary Rojewski __entry->header = header; 29*8ba1edb9SCezary Rojewski ), 30*8ba1edb9SCezary Rojewski 31*8ba1edb9SCezary Rojewski TP_printk("0x%08x", __entry->header) 32*8ba1edb9SCezary Rojewski ); 33*8ba1edb9SCezary Rojewski 34*8ba1edb9SCezary Rojewski DEFINE_EVENT(catpt_ipc_msg, catpt_irq, 35*8ba1edb9SCezary Rojewski TP_PROTO(u32 header), 36*8ba1edb9SCezary Rojewski TP_ARGS(header) 37*8ba1edb9SCezary Rojewski ); 38*8ba1edb9SCezary Rojewski 39*8ba1edb9SCezary Rojewski DEFINE_EVENT(catpt_ipc_msg, catpt_ipc_request, 40*8ba1edb9SCezary Rojewski TP_PROTO(u32 header), 41*8ba1edb9SCezary Rojewski TP_ARGS(header) 42*8ba1edb9SCezary Rojewski ); 43*8ba1edb9SCezary Rojewski 44*8ba1edb9SCezary Rojewski DEFINE_EVENT(catpt_ipc_msg, catpt_ipc_reply, 45*8ba1edb9SCezary Rojewski TP_PROTO(u32 header), 46*8ba1edb9SCezary Rojewski TP_ARGS(header) 47*8ba1edb9SCezary Rojewski ); 48*8ba1edb9SCezary Rojewski 49*8ba1edb9SCezary Rojewski DEFINE_EVENT(catpt_ipc_msg, catpt_ipc_notify, 50*8ba1edb9SCezary Rojewski TP_PROTO(u32 header), 51*8ba1edb9SCezary Rojewski TP_ARGS(header) 52*8ba1edb9SCezary Rojewski ); 53*8ba1edb9SCezary Rojewski 54*8ba1edb9SCezary Rojewski TRACE_EVENT_CONDITION(catpt_ipc_payload, 55*8ba1edb9SCezary Rojewski 56*8ba1edb9SCezary Rojewski TP_PROTO(const u8 *data, size_t size), 57*8ba1edb9SCezary Rojewski 58*8ba1edb9SCezary Rojewski TP_ARGS(data, size), 59*8ba1edb9SCezary Rojewski 60*8ba1edb9SCezary Rojewski TP_CONDITION(data && size), 61*8ba1edb9SCezary Rojewski 62*8ba1edb9SCezary Rojewski TP_STRUCT__entry( 63*8ba1edb9SCezary Rojewski __dynamic_array(u8, buf, size) 64*8ba1edb9SCezary Rojewski ), 65*8ba1edb9SCezary Rojewski 66*8ba1edb9SCezary Rojewski TP_fast_assign( 67*8ba1edb9SCezary Rojewski memcpy(__get_dynamic_array(buf), data, size); 68*8ba1edb9SCezary Rojewski ), 69*8ba1edb9SCezary Rojewski 70*8ba1edb9SCezary Rojewski TP_printk("%u byte(s)%s", 71*8ba1edb9SCezary Rojewski __get_dynamic_array_len(buf), 72*8ba1edb9SCezary Rojewski __print_hex_dump("", DUMP_PREFIX_NONE, 16, 4, 73*8ba1edb9SCezary Rojewski __get_dynamic_array(buf), 74*8ba1edb9SCezary Rojewski __get_dynamic_array_len(buf), false)) 75*8ba1edb9SCezary Rojewski ); 76*8ba1edb9SCezary Rojewski 77*8ba1edb9SCezary Rojewski #endif /* __SND_SOC_INTEL_CATPT_TRACE_H */ 78*8ba1edb9SCezary Rojewski 79*8ba1edb9SCezary Rojewski /* This part must be outside protection */ 80*8ba1edb9SCezary Rojewski #undef TRACE_INCLUDE_PATH 81*8ba1edb9SCezary Rojewski #define TRACE_INCLUDE_PATH . 82*8ba1edb9SCezary Rojewski #define TRACE_INCLUDE_FILE trace 83*8ba1edb9SCezary Rojewski #include <trace/define_trace.h> 84