162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#if !defined(_TRACE_RPMH_H) || defined(TRACE_HEADER_MULTI_READ) 762306a36Sopenharmony_ci#define _TRACE_RPMH_H 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#undef TRACE_SYSTEM 1062306a36Sopenharmony_ci#define TRACE_SYSTEM rpmh 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#include <linux/tracepoint.h> 1362306a36Sopenharmony_ci#include "rpmh-internal.h" 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciTRACE_EVENT(rpmh_tx_done, 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci TP_PROTO(struct rsc_drv *d, int m, const struct tcs_request *r), 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci TP_ARGS(d, m, r), 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci TP_STRUCT__entry( 2262306a36Sopenharmony_ci __string(name, d->name) 2362306a36Sopenharmony_ci __field(int, m) 2462306a36Sopenharmony_ci __field(u32, addr) 2562306a36Sopenharmony_ci __field(u32, data) 2662306a36Sopenharmony_ci ), 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci TP_fast_assign( 2962306a36Sopenharmony_ci __assign_str(name, d->name); 3062306a36Sopenharmony_ci __entry->m = m; 3162306a36Sopenharmony_ci __entry->addr = r->cmds[0].addr; 3262306a36Sopenharmony_ci __entry->data = r->cmds[0].data; 3362306a36Sopenharmony_ci ), 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci TP_printk("%s: ack: tcs-m: %d addr: %#x data: %#x", 3662306a36Sopenharmony_ci __get_str(name), __entry->m, __entry->addr, __entry->data) 3762306a36Sopenharmony_ci); 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciTRACE_EVENT(rpmh_send_msg, 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci TP_PROTO(struct rsc_drv *d, int m, enum rpmh_state state, int n, u32 h, 4262306a36Sopenharmony_ci const struct tcs_cmd *c), 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci TP_ARGS(d, m, state, n, h, c), 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci TP_STRUCT__entry( 4762306a36Sopenharmony_ci __string(name, d->name) 4862306a36Sopenharmony_ci __field(int, m) 4962306a36Sopenharmony_ci __field(u32, state) 5062306a36Sopenharmony_ci __field(int, n) 5162306a36Sopenharmony_ci __field(u32, hdr) 5262306a36Sopenharmony_ci __field(u32, addr) 5362306a36Sopenharmony_ci __field(u32, data) 5462306a36Sopenharmony_ci __field(bool, wait) 5562306a36Sopenharmony_ci ), 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci TP_fast_assign( 5862306a36Sopenharmony_ci __assign_str(name, d->name); 5962306a36Sopenharmony_ci __entry->m = m; 6062306a36Sopenharmony_ci __entry->state = state; 6162306a36Sopenharmony_ci __entry->n = n; 6262306a36Sopenharmony_ci __entry->hdr = h; 6362306a36Sopenharmony_ci __entry->addr = c->addr; 6462306a36Sopenharmony_ci __entry->data = c->data; 6562306a36Sopenharmony_ci __entry->wait = c->wait; 6662306a36Sopenharmony_ci ), 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci TP_printk("%s: tcs(m): %d [%s] cmd(n): %d msgid: %#x addr: %#x data: %#x complete: %d", 6962306a36Sopenharmony_ci __get_str(name), __entry->m, 7062306a36Sopenharmony_ci __print_symbolic(__entry->state, 7162306a36Sopenharmony_ci { RPMH_SLEEP_STATE, "sleep" }, 7262306a36Sopenharmony_ci { RPMH_WAKE_ONLY_STATE, "wake" }, 7362306a36Sopenharmony_ci { RPMH_ACTIVE_ONLY_STATE, "active" }), 7462306a36Sopenharmony_ci __entry->n, 7562306a36Sopenharmony_ci __entry->hdr, 7662306a36Sopenharmony_ci __entry->addr, __entry->data, __entry->wait) 7762306a36Sopenharmony_ci); 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci#endif /* _TRACE_RPMH_H */ 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH 8262306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH . 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci#undef TRACE_INCLUDE_FILE 8562306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE trace-rpmh 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci#include <trace/define_trace.h> 88