1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
20e472252SBob Copeland #if !defined(__TRACE_ATH5K_H) || defined(TRACE_HEADER_MULTI_READ)
30e472252SBob Copeland #define __TRACE_ATH5K_H
40e472252SBob Copeland 
50e472252SBob Copeland #include <linux/tracepoint.h>
60e472252SBob Copeland 
776ff9a61SLuis R. Rodriguez 
876ff9a61SLuis R. Rodriguez #if !defined(CONFIG_ATH5K_TRACER) || defined(__CHECKER__)
90e472252SBob Copeland #undef TRACE_EVENT
100e472252SBob Copeland #define TRACE_EVENT(name, proto, ...) \
110e472252SBob Copeland static inline void trace_ ## name(proto) {}
120e472252SBob Copeland #endif
130e472252SBob Copeland 
140e472252SBob Copeland struct sk_buff;
15931be260SPavel Roskin struct ath5k_txq;
16931be260SPavel Roskin struct ath5k_tx_status;
170e472252SBob Copeland 
180e472252SBob Copeland #undef TRACE_SYSTEM
190e472252SBob Copeland #define TRACE_SYSTEM ath5k
200e472252SBob Copeland 
210e472252SBob Copeland TRACE_EVENT(ath5k_rx,
22e0d687bdSPavel Roskin 	TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb),
230e472252SBob Copeland 	TP_ARGS(priv, skb),
240e472252SBob Copeland 	TP_STRUCT__entry(
25e0d687bdSPavel Roskin 		__field(struct ath5k_hw *, priv)
260e472252SBob Copeland 		__field(unsigned long, skbaddr)
270e472252SBob Copeland 		__dynamic_array(u8, frame, skb->len)
280e472252SBob Copeland 	),
290e472252SBob Copeland 	TP_fast_assign(
30b988a887SPavel Roskin 		__entry->priv = priv;
310e472252SBob Copeland 		__entry->skbaddr = (unsigned long) skb;
320e472252SBob Copeland 		memcpy(__get_dynamic_array(frame), skb->data, skb->len);
330e472252SBob Copeland 	),
340e472252SBob Copeland 	TP_printk(
350e472252SBob Copeland 		"[%p] RX skb=%lx", __entry->priv, __entry->skbaddr
360e472252SBob Copeland 	)
370e472252SBob Copeland );
380e472252SBob Copeland 
390e472252SBob Copeland TRACE_EVENT(ath5k_tx,
40e0d687bdSPavel Roskin 	TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb,
410e472252SBob Copeland 		 struct ath5k_txq *q),
420e472252SBob Copeland 
430e472252SBob Copeland 	TP_ARGS(priv, skb, q),
440e472252SBob Copeland 
450e472252SBob Copeland 	TP_STRUCT__entry(
46e0d687bdSPavel Roskin 		__field(struct ath5k_hw *, priv)
470e472252SBob Copeland 		__field(unsigned long, skbaddr)
480e472252SBob Copeland 		__field(u8, qnum)
490e472252SBob Copeland 		__dynamic_array(u8, frame, skb->len)
500e472252SBob Copeland 	),
510e472252SBob Copeland 
520e472252SBob Copeland 	TP_fast_assign(
53b988a887SPavel Roskin 		__entry->priv = priv;
540e472252SBob Copeland 		__entry->skbaddr = (unsigned long) skb;
550e472252SBob Copeland 		__entry->qnum = (u8) q->qnum;
560e472252SBob Copeland 		memcpy(__get_dynamic_array(frame), skb->data, skb->len);
570e472252SBob Copeland 	),
580e472252SBob Copeland 
590e472252SBob Copeland 	TP_printk(
600e472252SBob Copeland 		"[%p] TX skb=%lx q=%d", __entry->priv, __entry->skbaddr,
610e472252SBob Copeland 		__entry->qnum
620e472252SBob Copeland 	)
630e472252SBob Copeland );
640e472252SBob Copeland 
650e472252SBob Copeland TRACE_EVENT(ath5k_tx_complete,
66e0d687bdSPavel Roskin 	TP_PROTO(struct ath5k_hw *priv, struct sk_buff *skb,
670e472252SBob Copeland 		 struct ath5k_txq *q, struct ath5k_tx_status *ts),
680e472252SBob Copeland 
690e472252SBob Copeland 	TP_ARGS(priv, skb, q, ts),
700e472252SBob Copeland 
710e472252SBob Copeland 	TP_STRUCT__entry(
72e0d687bdSPavel Roskin 		__field(struct ath5k_hw *, priv)
730e472252SBob Copeland 		__field(unsigned long, skbaddr)
740e472252SBob Copeland 		__field(u8, qnum)
750e472252SBob Copeland 		__field(u8, ts_status)
760e472252SBob Copeland 		__field(s8, ts_rssi)
770e472252SBob Copeland 		__field(u8, ts_antenna)
780e472252SBob Copeland 	),
790e472252SBob Copeland 
800e472252SBob Copeland 	TP_fast_assign(
81b988a887SPavel Roskin 		__entry->priv = priv;
820e472252SBob Copeland 		__entry->skbaddr = (unsigned long) skb;
830e472252SBob Copeland 		__entry->qnum = (u8) q->qnum;
840e472252SBob Copeland 		__entry->ts_status = ts->ts_status;
850e472252SBob Copeland 		__entry->ts_rssi =  ts->ts_rssi;
860e472252SBob Copeland 		__entry->ts_antenna = ts->ts_antenna;
870e472252SBob Copeland 	),
880e472252SBob Copeland 
890e472252SBob Copeland 	TP_printk(
900e472252SBob Copeland 		"[%p] TX end skb=%lx q=%d stat=%x rssi=%d ant=%x",
910e472252SBob Copeland 		__entry->priv, __entry->skbaddr, __entry->qnum,
920e472252SBob Copeland 		__entry->ts_status, __entry->ts_rssi, __entry->ts_antenna
930e472252SBob Copeland 	)
940e472252SBob Copeland );
950e472252SBob Copeland 
960e472252SBob Copeland #endif /* __TRACE_ATH5K_H */
970e472252SBob Copeland 
9876ff9a61SLuis R. Rodriguez #if defined(CONFIG_ATH5K_TRACER) && !defined(__CHECKER__)
990e472252SBob Copeland 
1000e472252SBob Copeland #undef TRACE_INCLUDE_PATH
101cc5569f6SJohannes Berg #define TRACE_INCLUDE_PATH .
1020e472252SBob Copeland #undef TRACE_INCLUDE_FILE
1030e472252SBob Copeland #define TRACE_INCLUDE_FILE trace
1040e472252SBob Copeland 
1050e472252SBob Copeland #include <trace/define_trace.h>
1060e472252SBob Copeland 
1070e472252SBob Copeland #endif
108