xref: /openbmc/linux/sound/soc/intel/catpt/trace.h (revision cbecf716ca618fd44feda6bd9a64a8179d031fc5)
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