/* SPDX-License-Identifier: GPL-2.0 */ #if !defined(__BNO055_SERDEV_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ) #define __BNO055_SERDEV_TRACE_H__ #include #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