1fc087fe5SLina Iyer /* SPDX-License-Identifier: GPL-2.0 */ 2fc087fe5SLina Iyer /* 3fc087fe5SLina Iyer * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. 4fc087fe5SLina Iyer */ 5fc087fe5SLina Iyer 6fc087fe5SLina Iyer #if !defined(_TRACE_RPMH_H) || defined(TRACE_HEADER_MULTI_READ) 7fc087fe5SLina Iyer #define _TRACE_RPMH_H 8fc087fe5SLina Iyer 9fc087fe5SLina Iyer #undef TRACE_SYSTEM 10fc087fe5SLina Iyer #define TRACE_SYSTEM rpmh 11fc087fe5SLina Iyer 12fc087fe5SLina Iyer #include <linux/tracepoint.h> 13fc087fe5SLina Iyer #include "rpmh-internal.h" 14fc087fe5SLina Iyer 15fc087fe5SLina Iyer TRACE_EVENT(rpmh_tx_done, 16fc087fe5SLina Iyer 17323dc2dcSAbel Vesa TP_PROTO(struct rsc_drv *d, int m, const struct tcs_request *r), 18fc087fe5SLina Iyer 19323dc2dcSAbel Vesa TP_ARGS(d, m, r), 20fc087fe5SLina Iyer 21fc087fe5SLina Iyer TP_STRUCT__entry( 22fc087fe5SLina Iyer __string(name, d->name) 23fc087fe5SLina Iyer __field(int, m) 24fc087fe5SLina Iyer __field(u32, addr) 25fc087fe5SLina Iyer __field(u32, data) 26fc087fe5SLina Iyer ), 27fc087fe5SLina Iyer 28fc087fe5SLina Iyer TP_fast_assign( 29fc087fe5SLina Iyer __assign_str(name, d->name); 30fc087fe5SLina Iyer __entry->m = m; 31fc087fe5SLina Iyer __entry->addr = r->cmds[0].addr; 32fc087fe5SLina Iyer __entry->data = r->cmds[0].data; 33fc087fe5SLina Iyer ), 34fc087fe5SLina Iyer 35323dc2dcSAbel Vesa TP_printk("%s: ack: tcs-m: %d addr: %#x data: %#x", 36323dc2dcSAbel Vesa __get_str(name), __entry->m, __entry->addr, __entry->data) 37fc087fe5SLina Iyer ); 38fc087fe5SLina Iyer 39fc087fe5SLina Iyer TRACE_EVENT(rpmh_send_msg, 40fc087fe5SLina Iyer 41*1b06d8caSBjorn Andersson TP_PROTO(struct rsc_drv *d, int m, enum rpmh_state state, int n, u32 h, 42fc087fe5SLina Iyer const struct tcs_cmd *c), 43fc087fe5SLina Iyer 44*1b06d8caSBjorn Andersson TP_ARGS(d, m, state, n, h, c), 45fc087fe5SLina Iyer 46fc087fe5SLina Iyer TP_STRUCT__entry( 47fc087fe5SLina Iyer __string(name, d->name) 48fc087fe5SLina Iyer __field(int, m) 49*1b06d8caSBjorn Andersson __field(u32, state) 50fc087fe5SLina Iyer __field(int, n) 51fc087fe5SLina Iyer __field(u32, hdr) 52fc087fe5SLina Iyer __field(u32, addr) 53fc087fe5SLina Iyer __field(u32, data) 54fc087fe5SLina Iyer __field(bool, wait) 55fc087fe5SLina Iyer ), 56fc087fe5SLina Iyer 57fc087fe5SLina Iyer TP_fast_assign( 58fc087fe5SLina Iyer __assign_str(name, d->name); 59fc087fe5SLina Iyer __entry->m = m; 60*1b06d8caSBjorn Andersson __entry->state = state; 61fc087fe5SLina Iyer __entry->n = n; 62fc087fe5SLina Iyer __entry->hdr = h; 63fc087fe5SLina Iyer __entry->addr = c->addr; 64fc087fe5SLina Iyer __entry->data = c->data; 65fc087fe5SLina Iyer __entry->wait = c->wait; 66fc087fe5SLina Iyer ), 67fc087fe5SLina Iyer 68*1b06d8caSBjorn Andersson TP_printk("%s: tcs(m): %d [%s] cmd(n): %d msgid: %#x addr: %#x data: %#x complete: %d", 69*1b06d8caSBjorn Andersson __get_str(name), __entry->m, 70*1b06d8caSBjorn Andersson __print_symbolic(__entry->state, 71*1b06d8caSBjorn Andersson { RPMH_SLEEP_STATE, "sleep" }, 72*1b06d8caSBjorn Andersson { RPMH_WAKE_ONLY_STATE, "wake" }, 73*1b06d8caSBjorn Andersson { RPMH_ACTIVE_ONLY_STATE, "active" }), 74*1b06d8caSBjorn Andersson __entry->n, 75*1b06d8caSBjorn Andersson __entry->hdr, 76fc087fe5SLina Iyer __entry->addr, __entry->data, __entry->wait) 77fc087fe5SLina Iyer ); 78fc087fe5SLina Iyer 79fc087fe5SLina Iyer #endif /* _TRACE_RPMH_H */ 80fc087fe5SLina Iyer 81fc087fe5SLina Iyer #undef TRACE_INCLUDE_PATH 82fc087fe5SLina Iyer #define TRACE_INCLUDE_PATH . 83fc087fe5SLina Iyer 84fc087fe5SLina Iyer #undef TRACE_INCLUDE_FILE 85fc087fe5SLina Iyer #define TRACE_INCLUDE_FILE trace-rpmh 86fc087fe5SLina Iyer 87fc087fe5SLina Iyer #include <trace/define_trace.h> 88