xref: /linux/drivers/iio/imu/bno055/bno055_ser_trace.h (revision cbdb1f163af2bb90d01be1f0263df1d8d5c9d9d3)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #if !defined(__BNO055_SERDEV_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ)
4 #define __BNO055_SERDEV_TRACE_H__
5 
6 #include <linux/tracepoint.h>
7 
8 #undef TRACE_SYSTEM
9 #define TRACE_SYSTEM bno055_ser
10 
11 TRACE_EVENT(send_chunk,
12 	    TP_PROTO(int len, const u8 *data),
13 	    TP_ARGS(len, data),
14 	    TP_STRUCT__entry(
15 		    __field(int, len)
16 		    __dynamic_array(u8, chunk, len)
17 	    ),
18 	    TP_fast_assign(
19 		    __entry->len = len;
20 		    memcpy(__get_dynamic_array(chunk),
21 			   data, __entry->len);
22 	    ),
23 	    TP_printk("len: %d, data: = %*ph",
24 		      __entry->len, __entry->len, __get_dynamic_array(chunk)
25 	    )
26 );
27 
28 TRACE_EVENT(cmd_retry,
29 	    TP_PROTO(bool read, int addr, int retry),
30 	    TP_ARGS(read, addr, retry),
31 	    TP_STRUCT__entry(
32 		    __field(bool, read)
33 		    __field(int, addr)
34 		    __field(int, retry)
35 	    ),
36 	    TP_fast_assign(
37 		    __entry->read = read;
38 		    __entry->addr = addr;
39 		    __entry->retry = retry;
40 	    ),
41 	    TP_printk("%s addr 0x%x retry #%d",
42 		      __entry->read ? "read" : "write",
43 		      __entry->addr, __entry->retry
44 	    )
45 );
46 
47 TRACE_EVENT(write_reg,
48 	    TP_PROTO(u8 addr, u8 value),
49 	    TP_ARGS(addr, value),
50 	    TP_STRUCT__entry(
51 		    __field(u8, addr)
52 		    __field(u8, value)
53 	    ),
54 	    TP_fast_assign(
55 		    __entry->addr = addr;
56 		    __entry->value = value;
57 	    ),
58 	    TP_printk("reg 0x%x = 0x%x",
59 		      __entry->addr, __entry->value
60 	    )
61 );
62 
63 TRACE_EVENT(read_reg,
64 	    TP_PROTO(int addr, size_t len),
65 	    TP_ARGS(addr, len),
66 	    TP_STRUCT__entry(
67 		    __field(int, addr)
68 		    __field(size_t, len)
69 	    ),
70 	    TP_fast_assign(
71 		    __entry->addr = addr;
72 		    __entry->len = len;
73 	    ),
74 	    TP_printk("reg 0x%x (len %zu)",
75 		      __entry->addr, __entry->len
76 	    )
77 );
78 
79 TRACE_EVENT(recv,
80 	    TP_PROTO(size_t len, const unsigned char *buf),
81 	    TP_ARGS(len, buf),
82 	    TP_STRUCT__entry(
83 		    __field(size_t, len)
84 		    __dynamic_array(unsigned char, buf, len)
85 	    ),
86 	    TP_fast_assign(
87 		    __entry->len = len;
88 		    memcpy(__get_dynamic_array(buf),
89 			   buf, __entry->len);
90 	    ),
91 	    TP_printk("len: %zu, data: = %*ph",
92 		      __entry->len, (int)__entry->len, __get_dynamic_array(buf)
93 	    )
94 );
95 
96 #endif /* __BNO055_SERDEV_TRACE_H__ || TRACE_HEADER_MULTI_READ */
97 
98 #undef TRACE_INCLUDE_PATH
99 #define TRACE_INCLUDE_PATH .
100 #undef TRACE_INCLUDE_FILE
101 #define TRACE_INCLUDE_FILE bno055_ser_trace
102 
103 /* This part must be outside protection */
104 #include <trace/define_trace.h>
105