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