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