xref: /openbmc/linux/drivers/net/wireless/mediatek/mt76/mt76x02_trace.h (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
10e3d6777SRyder Lee /* SPDX-License-Identifier: ISC */
23e2342edSLorenzo Bianconi /*
33e2342edSLorenzo Bianconi  * Copyright (C) 2016 Felix Fietkau <nbd@nbd.name>
43e2342edSLorenzo Bianconi  */
53e2342edSLorenzo Bianconi 
63e2342edSLorenzo Bianconi #if !defined(__MT76x02_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
73e2342edSLorenzo Bianconi #define __MT76x02_TRACE_H
83e2342edSLorenzo Bianconi 
93e2342edSLorenzo Bianconi #include <linux/tracepoint.h>
103e2342edSLorenzo Bianconi #include "mt76x02.h"
113e2342edSLorenzo Bianconi 
123e2342edSLorenzo Bianconi #undef TRACE_SYSTEM
133e2342edSLorenzo Bianconi #define TRACE_SYSTEM mt76x02
143e2342edSLorenzo Bianconi 
153e2342edSLorenzo Bianconi #define MAXNAME		32
163e2342edSLorenzo Bianconi #define DEV_ENTRY	__array(char, wiphy_name, 32)
17*d6b484b5SAzeem Shaikh #define DEV_ASSIGN	strscpy(__entry->wiphy_name,	\
18ff97c52aSRyder Lee 				wiphy_name(mt76_hw(dev)->wiphy), MAXNAME)
193e2342edSLorenzo Bianconi #define DEV_PR_FMT	"%s"
203e2342edSLorenzo Bianconi #define DEV_PR_ARG	__entry->wiphy_name
213e2342edSLorenzo Bianconi 
223e2342edSLorenzo Bianconi #define TXID_ENTRY	__field(u8, wcid) __field(u8, pktid)
233e2342edSLorenzo Bianconi #define TXID_PR_FMT	" [%d:%d]"
243e2342edSLorenzo Bianconi #define TXID_PR_ARG	__entry->wcid, __entry->pktid
253e2342edSLorenzo Bianconi 
263e2342edSLorenzo Bianconi DECLARE_EVENT_CLASS(dev_evt,
273e2342edSLorenzo Bianconi 	TP_PROTO(struct mt76x02_dev *dev),
283e2342edSLorenzo Bianconi 	TP_ARGS(dev),
293e2342edSLorenzo Bianconi 	TP_STRUCT__entry(
303e2342edSLorenzo Bianconi 		DEV_ENTRY
313e2342edSLorenzo Bianconi 	),
323e2342edSLorenzo Bianconi 	TP_fast_assign(
333e2342edSLorenzo Bianconi 		DEV_ASSIGN;
343e2342edSLorenzo Bianconi 	),
353e2342edSLorenzo Bianconi 	TP_printk(DEV_PR_FMT, DEV_PR_ARG)
363e2342edSLorenzo Bianconi );
373e2342edSLorenzo Bianconi 
383e2342edSLorenzo Bianconi DEFINE_EVENT(dev_evt, mac_txstat_poll,
393e2342edSLorenzo Bianconi 	TP_PROTO(struct mt76x02_dev *dev),
403e2342edSLorenzo Bianconi 	TP_ARGS(dev)
413e2342edSLorenzo Bianconi );
423e2342edSLorenzo Bianconi 
433e2342edSLorenzo Bianconi TRACE_EVENT(mac_txstat_fetch,
443e2342edSLorenzo Bianconi 	TP_PROTO(struct mt76x02_dev *dev,
453e2342edSLorenzo Bianconi 		 struct mt76x02_tx_status *stat),
463e2342edSLorenzo Bianconi 
473e2342edSLorenzo Bianconi 	TP_ARGS(dev, stat),
483e2342edSLorenzo Bianconi 
493e2342edSLorenzo Bianconi 	TP_STRUCT__entry(
503e2342edSLorenzo Bianconi 		DEV_ENTRY
513e2342edSLorenzo Bianconi 		TXID_ENTRY
523e2342edSLorenzo Bianconi 		__field(bool, success)
533e2342edSLorenzo Bianconi 		__field(bool, aggr)
543e2342edSLorenzo Bianconi 		__field(bool, ack_req)
553e2342edSLorenzo Bianconi 		__field(u16, rate)
563e2342edSLorenzo Bianconi 		__field(u8, retry)
573e2342edSLorenzo Bianconi 	),
583e2342edSLorenzo Bianconi 
593e2342edSLorenzo Bianconi 	TP_fast_assign(
603e2342edSLorenzo Bianconi 		DEV_ASSIGN;
613e2342edSLorenzo Bianconi 		__entry->success = stat->success;
623e2342edSLorenzo Bianconi 		__entry->aggr = stat->aggr;
633e2342edSLorenzo Bianconi 		__entry->ack_req = stat->ack_req;
643e2342edSLorenzo Bianconi 		__entry->wcid = stat->wcid;
653e2342edSLorenzo Bianconi 		__entry->pktid = stat->pktid;
663e2342edSLorenzo Bianconi 		__entry->rate = stat->rate;
673e2342edSLorenzo Bianconi 		__entry->retry = stat->retry;
683e2342edSLorenzo Bianconi 	),
693e2342edSLorenzo Bianconi 
703e2342edSLorenzo Bianconi 	TP_printk(
713e2342edSLorenzo Bianconi 		DEV_PR_FMT TXID_PR_FMT
723e2342edSLorenzo Bianconi 		" success:%d aggr:%d ack_req:%d"
733e2342edSLorenzo Bianconi 		" rate:%04x retry:%d",
743e2342edSLorenzo Bianconi 		DEV_PR_ARG, TXID_PR_ARG,
753e2342edSLorenzo Bianconi 		__entry->success, __entry->aggr, __entry->ack_req,
763e2342edSLorenzo Bianconi 		__entry->rate, __entry->retry
773e2342edSLorenzo Bianconi 	)
783e2342edSLorenzo Bianconi );
793e2342edSLorenzo Bianconi 
803e2342edSLorenzo Bianconi #endif
813e2342edSLorenzo Bianconi 
823e2342edSLorenzo Bianconi #undef TRACE_INCLUDE_PATH
833e2342edSLorenzo Bianconi #define TRACE_INCLUDE_PATH .
843e2342edSLorenzo Bianconi #undef TRACE_INCLUDE_FILE
853e2342edSLorenzo Bianconi #define TRACE_INCLUDE_FILE mt76x02_trace
863e2342edSLorenzo Bianconi 
873e2342edSLorenzo Bianconi #include <trace/define_trace.h>
88