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