]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
56ec1978 MB |
2 | #undef TRACE_SYSTEM |
3 | #define TRACE_SYSTEM spi | |
4 | ||
5 | #if !defined(_TRACE_SPI_H) || defined(TRACE_HEADER_MULTI_READ) | |
6 | #define _TRACE_SPI_H | |
7 | ||
8 | #include <linux/ktime.h> | |
9 | #include <linux/tracepoint.h> | |
10 | ||
8caab75f | 11 | DECLARE_EVENT_CLASS(spi_controller, |
56ec1978 | 12 | |
8caab75f | 13 | TP_PROTO(struct spi_controller *controller), |
56ec1978 | 14 | |
8caab75f | 15 | TP_ARGS(controller), |
56ec1978 MB |
16 | |
17 | TP_STRUCT__entry( | |
18 | __field( int, bus_num ) | |
19 | ), | |
20 | ||
21 | TP_fast_assign( | |
8caab75f | 22 | __entry->bus_num = controller->bus_num; |
56ec1978 MB |
23 | ), |
24 | ||
25 | TP_printk("spi%d", (int)__entry->bus_num) | |
26 | ||
27 | ); | |
28 | ||
8caab75f | 29 | DEFINE_EVENT(spi_controller, spi_controller_idle, |
56ec1978 | 30 | |
8caab75f | 31 | TP_PROTO(struct spi_controller *controller), |
56ec1978 | 32 | |
8caab75f | 33 | TP_ARGS(controller) |
56ec1978 MB |
34 | |
35 | ); | |
36 | ||
8caab75f | 37 | DEFINE_EVENT(spi_controller, spi_controller_busy, |
56ec1978 | 38 | |
8caab75f | 39 | TP_PROTO(struct spi_controller *controller), |
56ec1978 | 40 | |
8caab75f | 41 | TP_ARGS(controller) |
56ec1978 MB |
42 | |
43 | ); | |
44 | ||
45 | DECLARE_EVENT_CLASS(spi_message, | |
46 | ||
47 | TP_PROTO(struct spi_message *msg), | |
48 | ||
49 | TP_ARGS(msg), | |
50 | ||
51 | TP_STRUCT__entry( | |
52 | __field( int, bus_num ) | |
53 | __field( int, chip_select ) | |
54 | __field( struct spi_message *, msg ) | |
55 | ), | |
56 | ||
57 | TP_fast_assign( | |
8caab75f | 58 | __entry->bus_num = msg->spi->controller->bus_num; |
56ec1978 MB |
59 | __entry->chip_select = msg->spi->chip_select; |
60 | __entry->msg = msg; | |
61 | ), | |
62 | ||
63 | TP_printk("spi%d.%d %p", (int)__entry->bus_num, | |
64 | (int)__entry->chip_select, | |
65 | (struct spi_message *)__entry->msg) | |
66 | ); | |
67 | ||
68 | DEFINE_EVENT(spi_message, spi_message_submit, | |
69 | ||
70 | TP_PROTO(struct spi_message *msg), | |
71 | ||
72 | TP_ARGS(msg) | |
73 | ||
74 | ); | |
75 | ||
76 | DEFINE_EVENT(spi_message, spi_message_start, | |
77 | ||
78 | TP_PROTO(struct spi_message *msg), | |
79 | ||
80 | TP_ARGS(msg) | |
81 | ||
82 | ); | |
83 | ||
31a2c46c | 84 | TRACE_EVENT(spi_message_done, |
56ec1978 MB |
85 | |
86 | TP_PROTO(struct spi_message *msg), | |
87 | ||
31a2c46c MB |
88 | TP_ARGS(msg), |
89 | ||
90 | TP_STRUCT__entry( | |
91 | __field( int, bus_num ) | |
92 | __field( int, chip_select ) | |
93 | __field( struct spi_message *, msg ) | |
94 | __field( unsigned, frame ) | |
95 | __field( unsigned, actual ) | |
96 | ), | |
56ec1978 | 97 | |
31a2c46c | 98 | TP_fast_assign( |
8caab75f | 99 | __entry->bus_num = msg->spi->controller->bus_num; |
31a2c46c MB |
100 | __entry->chip_select = msg->spi->chip_select; |
101 | __entry->msg = msg; | |
102 | __entry->frame = msg->frame_length; | |
103 | __entry->actual = msg->actual_length; | |
104 | ), | |
105 | ||
106 | TP_printk("spi%d.%d %p len=%u/%u", (int)__entry->bus_num, | |
107 | (int)__entry->chip_select, | |
108 | (struct spi_message *)__entry->msg, | |
109 | (unsigned)__entry->actual, (unsigned)__entry->frame) | |
56ec1978 MB |
110 | ); |
111 | ||
b158935f MB |
112 | DECLARE_EVENT_CLASS(spi_transfer, |
113 | ||
114 | TP_PROTO(struct spi_message *msg, struct spi_transfer *xfer), | |
115 | ||
116 | TP_ARGS(msg, xfer), | |
117 | ||
118 | TP_STRUCT__entry( | |
119 | __field( int, bus_num ) | |
120 | __field( int, chip_select ) | |
121 | __field( struct spi_transfer *, xfer ) | |
122 | __field( int, len ) | |
123 | ), | |
124 | ||
125 | TP_fast_assign( | |
8caab75f | 126 | __entry->bus_num = msg->spi->controller->bus_num; |
b158935f MB |
127 | __entry->chip_select = msg->spi->chip_select; |
128 | __entry->xfer = xfer; | |
129 | __entry->len = xfer->len; | |
130 | ), | |
131 | ||
132 | TP_printk("spi%d.%d %p len=%d", (int)__entry->bus_num, | |
133 | (int)__entry->chip_select, | |
134 | (struct spi_message *)__entry->xfer, | |
135 | (int)__entry->len) | |
136 | ); | |
137 | ||
138 | DEFINE_EVENT(spi_transfer, spi_transfer_start, | |
139 | ||
140 | TP_PROTO(struct spi_message *msg, struct spi_transfer *xfer), | |
141 | ||
142 | TP_ARGS(msg, xfer) | |
143 | ||
144 | ); | |
145 | ||
146 | DEFINE_EVENT(spi_transfer, spi_transfer_stop, | |
147 | ||
148 | TP_PROTO(struct spi_message *msg, struct spi_transfer *xfer), | |
149 | ||
150 | TP_ARGS(msg, xfer) | |
151 | ||
152 | ); | |
153 | ||
56ec1978 MB |
154 | #endif /* _TRACE_POWER_H */ |
155 | ||
156 | /* This part must be outside protection */ | |
157 | #include <trace/define_trace.h> |