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