| /* SPDX-License-Identifier: GPL-2.0 */ | 
 |  | 
 | #if !defined(__BNO055_SERDEV_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ) | 
 | #define __BNO055_SERDEV_TRACE_H__ | 
 |  | 
 | #include <linux/tracepoint.h> | 
 |  | 
 | #undef TRACE_SYSTEM | 
 | #define TRACE_SYSTEM bno055_ser | 
 |  | 
 | TRACE_EVENT(send_chunk, | 
 | 	    TP_PROTO(int len, const u8 *data), | 
 | 	    TP_ARGS(len, data), | 
 | 	    TP_STRUCT__entry( | 
 | 		    __field(int, len) | 
 | 		    __dynamic_array(u8, chunk, len) | 
 | 	    ), | 
 | 	    TP_fast_assign( | 
 | 		    __entry->len = len; | 
 | 		    memcpy(__get_dynamic_array(chunk), | 
 | 			   data, __entry->len); | 
 | 	    ), | 
 | 	    TP_printk("len: %d, data: = %*ph", | 
 | 		      __entry->len, __entry->len, __get_dynamic_array(chunk) | 
 | 	    ) | 
 | ); | 
 |  | 
 | TRACE_EVENT(cmd_retry, | 
 | 	    TP_PROTO(bool read, int addr, int retry), | 
 | 	    TP_ARGS(read, addr, retry), | 
 | 	    TP_STRUCT__entry( | 
 | 		    __field(bool, read) | 
 | 		    __field(int, addr) | 
 | 		    __field(int, retry) | 
 | 	    ), | 
 | 	    TP_fast_assign( | 
 | 		    __entry->read = read; | 
 | 		    __entry->addr = addr; | 
 | 		    __entry->retry = retry; | 
 | 	    ), | 
 | 	    TP_printk("%s addr 0x%x retry #%d", | 
 | 		      __entry->read ? "read" : "write", | 
 | 		      __entry->addr, __entry->retry | 
 | 	    ) | 
 | ); | 
 |  | 
 | TRACE_EVENT(write_reg, | 
 | 	    TP_PROTO(u8 addr, u8 value), | 
 | 	    TP_ARGS(addr, value), | 
 | 	    TP_STRUCT__entry( | 
 | 		    __field(u8, addr) | 
 | 		    __field(u8, value) | 
 | 	    ), | 
 | 	    TP_fast_assign( | 
 | 		    __entry->addr = addr; | 
 | 		    __entry->value = value; | 
 | 	    ), | 
 | 	    TP_printk("reg 0x%x = 0x%x", | 
 | 		      __entry->addr, __entry->value | 
 | 	    ) | 
 | ); | 
 |  | 
 | TRACE_EVENT(read_reg, | 
 | 	    TP_PROTO(int addr, size_t len), | 
 | 	    TP_ARGS(addr, len), | 
 | 	    TP_STRUCT__entry( | 
 | 		    __field(int, addr) | 
 | 		    __field(size_t, len) | 
 | 	    ), | 
 | 	    TP_fast_assign( | 
 | 		    __entry->addr = addr; | 
 | 		    __entry->len = len; | 
 | 	    ), | 
 | 	    TP_printk("reg 0x%x (len %zu)", | 
 | 		      __entry->addr, __entry->len | 
 | 	    ) | 
 | ); | 
 |  | 
 | TRACE_EVENT(recv, | 
 | 	    TP_PROTO(size_t len, const unsigned char *buf), | 
 | 	    TP_ARGS(len, buf), | 
 | 	    TP_STRUCT__entry( | 
 | 		    __field(size_t, len) | 
 | 		    __dynamic_array(unsigned char, buf, len) | 
 | 	    ), | 
 | 	    TP_fast_assign( | 
 | 		    __entry->len = len; | 
 | 		    memcpy(__get_dynamic_array(buf), | 
 | 			   buf, __entry->len); | 
 | 	    ), | 
 | 	    TP_printk("len: %zu, data: = %*ph", | 
 | 		      __entry->len, (int)__entry->len, __get_dynamic_array(buf) | 
 | 	    ) | 
 | ); | 
 |  | 
 | #endif /* __BNO055_SERDEV_TRACE_H__ || TRACE_HEADER_MULTI_READ */ | 
 |  | 
 | #undef TRACE_INCLUDE_PATH | 
 | #define TRACE_INCLUDE_PATH . | 
 | #undef TRACE_INCLUDE_FILE | 
 | #define TRACE_INCLUDE_FILE bno055_ser_trace | 
 |  | 
 | /* This part must be outside protection */ | 
 | #include <trace/define_trace.h> |