1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2a9fce374SAnkit Gupta #undef TRACE_SYSTEM 3a9fce374SAnkit Gupta #define TRACE_SYSTEM spmi 4a9fce374SAnkit Gupta 5a9fce374SAnkit Gupta #if !defined(_TRACE_SPMI_H) || defined(TRACE_HEADER_MULTI_READ) 6a9fce374SAnkit Gupta #define _TRACE_SPMI_H 7a9fce374SAnkit Gupta 8a9fce374SAnkit Gupta #include <linux/spmi.h> 9a9fce374SAnkit Gupta #include <linux/tracepoint.h> 10a9fce374SAnkit Gupta 11a9fce374SAnkit Gupta /* 12a9fce374SAnkit Gupta * drivers/spmi/spmi.c 13a9fce374SAnkit Gupta */ 14a9fce374SAnkit Gupta 15a9fce374SAnkit Gupta TRACE_EVENT(spmi_write_begin, 16a9fce374SAnkit Gupta TP_PROTO(u8 opcode, u8 sid, u16 addr, u8 len, const u8 *buf), 17a9fce374SAnkit Gupta TP_ARGS(opcode, sid, addr, len, buf), 18a9fce374SAnkit Gupta 19a9fce374SAnkit Gupta TP_STRUCT__entry( 20a9fce374SAnkit Gupta __field ( u8, opcode ) 21a9fce374SAnkit Gupta __field ( u8, sid ) 22a9fce374SAnkit Gupta __field ( u16, addr ) 23a9fce374SAnkit Gupta __field ( u8, len ) 24*2af28b24SDavid Collins __dynamic_array ( u8, buf, len ) 25a9fce374SAnkit Gupta ), 26a9fce374SAnkit Gupta 27a9fce374SAnkit Gupta TP_fast_assign( 28a9fce374SAnkit Gupta __entry->opcode = opcode; 29a9fce374SAnkit Gupta __entry->sid = sid; 30a9fce374SAnkit Gupta __entry->addr = addr; 31*2af28b24SDavid Collins __entry->len = len; 32*2af28b24SDavid Collins memcpy(__get_dynamic_array(buf), buf, len); 33a9fce374SAnkit Gupta ), 34a9fce374SAnkit Gupta 35a9fce374SAnkit Gupta TP_printk("opc=%d sid=%02d addr=0x%04x len=%d buf=0x[%*phD]", 36a9fce374SAnkit Gupta (int)__entry->opcode, (int)__entry->sid, 37a9fce374SAnkit Gupta (int)__entry->addr, (int)__entry->len, 38a9fce374SAnkit Gupta (int)__entry->len, __get_dynamic_array(buf)) 39a9fce374SAnkit Gupta ); 40a9fce374SAnkit Gupta 41a9fce374SAnkit Gupta TRACE_EVENT(spmi_write_end, 42a9fce374SAnkit Gupta TP_PROTO(u8 opcode, u8 sid, u16 addr, int ret), 43a9fce374SAnkit Gupta TP_ARGS(opcode, sid, addr, ret), 44a9fce374SAnkit Gupta 45a9fce374SAnkit Gupta TP_STRUCT__entry( 46a9fce374SAnkit Gupta __field ( u8, opcode ) 47a9fce374SAnkit Gupta __field ( u8, sid ) 48a9fce374SAnkit Gupta __field ( u16, addr ) 49a9fce374SAnkit Gupta __field ( int, ret ) 50a9fce374SAnkit Gupta ), 51a9fce374SAnkit Gupta 52a9fce374SAnkit Gupta TP_fast_assign( 53a9fce374SAnkit Gupta __entry->opcode = opcode; 54a9fce374SAnkit Gupta __entry->sid = sid; 55a9fce374SAnkit Gupta __entry->addr = addr; 56a9fce374SAnkit Gupta __entry->ret = ret; 57a9fce374SAnkit Gupta ), 58a9fce374SAnkit Gupta 59a9fce374SAnkit Gupta TP_printk("opc=%d sid=%02d addr=0x%04x ret=%d", 60a9fce374SAnkit Gupta (int)__entry->opcode, (int)__entry->sid, 61a9fce374SAnkit Gupta (int)__entry->addr, __entry->ret) 62a9fce374SAnkit Gupta ); 63a9fce374SAnkit Gupta 64a9fce374SAnkit Gupta TRACE_EVENT(spmi_read_begin, 65a9fce374SAnkit Gupta TP_PROTO(u8 opcode, u8 sid, u16 addr), 66a9fce374SAnkit Gupta TP_ARGS(opcode, sid, addr), 67a9fce374SAnkit Gupta 68a9fce374SAnkit Gupta TP_STRUCT__entry( 69a9fce374SAnkit Gupta __field ( u8, opcode ) 70a9fce374SAnkit Gupta __field ( u8, sid ) 71a9fce374SAnkit Gupta __field ( u16, addr ) 72a9fce374SAnkit Gupta ), 73a9fce374SAnkit Gupta 74a9fce374SAnkit Gupta TP_fast_assign( 75a9fce374SAnkit Gupta __entry->opcode = opcode; 76a9fce374SAnkit Gupta __entry->sid = sid; 77a9fce374SAnkit Gupta __entry->addr = addr; 78a9fce374SAnkit Gupta ), 79a9fce374SAnkit Gupta 80a9fce374SAnkit Gupta TP_printk("opc=%d sid=%02d addr=0x%04x", 81a9fce374SAnkit Gupta (int)__entry->opcode, (int)__entry->sid, 82a9fce374SAnkit Gupta (int)__entry->addr) 83a9fce374SAnkit Gupta ); 84a9fce374SAnkit Gupta 85a9fce374SAnkit Gupta TRACE_EVENT(spmi_read_end, 86a9fce374SAnkit Gupta TP_PROTO(u8 opcode, u8 sid, u16 addr, int ret, u8 len, const u8 *buf), 87a9fce374SAnkit Gupta TP_ARGS(opcode, sid, addr, ret, len, buf), 88a9fce374SAnkit Gupta 89a9fce374SAnkit Gupta TP_STRUCT__entry( 90a9fce374SAnkit Gupta __field ( u8, opcode ) 91a9fce374SAnkit Gupta __field ( u8, sid ) 92a9fce374SAnkit Gupta __field ( u16, addr ) 93a9fce374SAnkit Gupta __field ( int, ret ) 94a9fce374SAnkit Gupta __field ( u8, len ) 95*2af28b24SDavid Collins __dynamic_array ( u8, buf, len ) 96a9fce374SAnkit Gupta ), 97a9fce374SAnkit Gupta 98a9fce374SAnkit Gupta TP_fast_assign( 99a9fce374SAnkit Gupta __entry->opcode = opcode; 100a9fce374SAnkit Gupta __entry->sid = sid; 101a9fce374SAnkit Gupta __entry->addr = addr; 102a9fce374SAnkit Gupta __entry->ret = ret; 103*2af28b24SDavid Collins __entry->len = len; 104*2af28b24SDavid Collins memcpy(__get_dynamic_array(buf), buf, len); 105a9fce374SAnkit Gupta ), 106a9fce374SAnkit Gupta 107a9fce374SAnkit Gupta TP_printk("opc=%d sid=%02d addr=0x%04x ret=%d len=%02d buf=0x[%*phD]", 108a9fce374SAnkit Gupta (int)__entry->opcode, (int)__entry->sid, 109a9fce374SAnkit Gupta (int)__entry->addr, __entry->ret, (int)__entry->len, 110a9fce374SAnkit Gupta (int)__entry->len, __get_dynamic_array(buf)) 111a9fce374SAnkit Gupta ); 112a9fce374SAnkit Gupta 113a9fce374SAnkit Gupta TRACE_EVENT(spmi_cmd, 114a9fce374SAnkit Gupta TP_PROTO(u8 opcode, u8 sid, int ret), 115a9fce374SAnkit Gupta TP_ARGS(opcode, sid, ret), 116a9fce374SAnkit Gupta 117a9fce374SAnkit Gupta TP_STRUCT__entry( 118a9fce374SAnkit Gupta __field ( u8, opcode ) 119a9fce374SAnkit Gupta __field ( u8, sid ) 120a9fce374SAnkit Gupta __field ( int, ret ) 121a9fce374SAnkit Gupta ), 122a9fce374SAnkit Gupta 123a9fce374SAnkit Gupta TP_fast_assign( 124a9fce374SAnkit Gupta __entry->opcode = opcode; 125a9fce374SAnkit Gupta __entry->sid = sid; 126a9fce374SAnkit Gupta __entry->ret = ret; 127a9fce374SAnkit Gupta ), 128a9fce374SAnkit Gupta 129a9fce374SAnkit Gupta TP_printk("opc=%d sid=%02d ret=%d", (int)__entry->opcode, 130a9fce374SAnkit Gupta (int)__entry->sid, ret) 131a9fce374SAnkit Gupta ); 132a9fce374SAnkit Gupta 133a9fce374SAnkit Gupta #endif /* _TRACE_SPMI_H */ 134a9fce374SAnkit Gupta 135a9fce374SAnkit Gupta /* This part must be outside protection */ 136a9fce374SAnkit Gupta #include <trace/define_trace.h> 137