^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)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #define TRACE_SYSTEM fsi
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #if !defined(_TRACE_FSI_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #define _TRACE_FSI_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^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) TRACE_EVENT(fsi_master_read,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) TP_PROTO(const struct fsi_master *master, int link, int id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) uint32_t addr, size_t size),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) TP_ARGS(master, link, id, addr, size),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) __field(int, master_idx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) __field(int, link)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) __field(int, id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) __field(__u32, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) __field(size_t, size)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) __entry->master_idx = master->idx;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) __entry->link = link;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) __entry->id = id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) __entry->addr = addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) __entry->size = size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) TP_printk("fsi%d:%02d:%02d %08x[%zu]",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) __entry->master_idx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) __entry->link,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) __entry->id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) __entry->addr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) __entry->size
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) TRACE_EVENT(fsi_master_write,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) TP_PROTO(const struct fsi_master *master, int link, int id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) uint32_t addr, size_t size, const void *data),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) TP_ARGS(master, link, id, addr, size, data),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) __field(int, master_idx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) __field(int, link)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) __field(int, id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) __field(__u32, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) __field(size_t, size)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) __field(__u32, data)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) __entry->master_idx = master->idx;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) __entry->link = link;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) __entry->id = id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) __entry->addr = addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) __entry->size = size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) __entry->data = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) memcpy(&__entry->data, data, size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) TP_printk("fsi%d:%02d:%02d %08x[%zu] <= {%*ph}",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) __entry->master_idx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) __entry->link,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) __entry->id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) __entry->addr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) __entry->size,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) (int)__entry->size, &__entry->data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) TRACE_EVENT(fsi_master_rw_result,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) TP_PROTO(const struct fsi_master *master, int link, int id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) uint32_t addr, size_t size,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) bool write, const void *data, int ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) TP_ARGS(master, link, id, addr, size, write, data, ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) __field(int, master_idx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) __field(int, link)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) __field(int, id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) __field(__u32, addr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) __field(size_t, size)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) __field(bool, write)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) __field(__u32, data)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) __field(int, ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) __entry->master_idx = master->idx;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) __entry->link = link;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) __entry->id = id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) __entry->addr = addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) __entry->size = size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) __entry->write = write;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) __entry->data = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) __entry->ret = ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) if (__entry->write || !__entry->ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) memcpy(&__entry->data, data, size);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) TP_printk("fsi%d:%02d:%02d %08x[%zu] %s {%*ph} ret %d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) __entry->master_idx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) __entry->link,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) __entry->id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) __entry->addr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) __entry->size,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) __entry->write ? "<=" : "=>",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) (int)__entry->size, &__entry->data,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) __entry->ret
^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)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) TRACE_EVENT(fsi_master_break,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) TP_PROTO(const struct fsi_master *master, int link),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) TP_ARGS(master, link),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) __field(int, master_idx)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) __field(int, link)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) __entry->master_idx = master->idx;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) __entry->link = link;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) TP_printk("fsi%d:%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) __entry->master_idx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) __entry->link
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) #endif /* _TRACE_FSI_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #include <trace/define_trace.h>