xref: /freebsd/sys/contrib/dev/mediatek/mt76/usb_trace.h (revision cbb3ec25236ba72f91cbdf23f8b78b9d1af0cedf)
16c92544dSBjoern A. Zeeb /* SPDX-License-Identifier: ISC */
26c92544dSBjoern A. Zeeb /*
36c92544dSBjoern A. Zeeb  * Copyright (C) 2018 Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
46c92544dSBjoern A. Zeeb  */
56c92544dSBjoern A. Zeeb 
66c92544dSBjoern A. Zeeb #if !defined(__MT76_USB_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
76c92544dSBjoern A. Zeeb #define __MT76_USB_TRACE_H
86c92544dSBjoern A. Zeeb 
96c92544dSBjoern A. Zeeb #include <linux/tracepoint.h>
106c92544dSBjoern A. Zeeb #include "mt76.h"
116c92544dSBjoern A. Zeeb 
126c92544dSBjoern A. Zeeb #undef TRACE_SYSTEM
136c92544dSBjoern A. Zeeb #define TRACE_SYSTEM mt76_usb
146c92544dSBjoern A. Zeeb 
156c92544dSBjoern A. Zeeb #define MAXNAME		32
166c92544dSBjoern A. Zeeb #define DEV_ENTRY	__array(char, wiphy_name, 32)
17*cbb3ec25SBjoern A. Zeeb #define DEV_ASSIGN	strscpy(__entry->wiphy_name,	\
186c92544dSBjoern A. Zeeb 				wiphy_name(dev->hw->wiphy), MAXNAME)
196c92544dSBjoern A. Zeeb #define DEV_PR_FMT	"%s "
206c92544dSBjoern A. Zeeb #define DEV_PR_ARG	__entry->wiphy_name
216c92544dSBjoern A. Zeeb 
226c92544dSBjoern A. Zeeb #define REG_ENTRY	__field(u32, reg) __field(u32, val)
236c92544dSBjoern A. Zeeb #define REG_ASSIGN	__entry->reg = reg; __entry->val = val
246c92544dSBjoern A. Zeeb #define REG_PR_FMT	"reg:0x%04x=0x%08x"
256c92544dSBjoern A. Zeeb #define REG_PR_ARG	__entry->reg, __entry->val
266c92544dSBjoern A. Zeeb 
276c92544dSBjoern A. Zeeb DECLARE_EVENT_CLASS(dev_reg_evt,
286c92544dSBjoern A. Zeeb 	TP_PROTO(struct mt76_dev *dev, u32 reg, u32 val),
296c92544dSBjoern A. Zeeb 	TP_ARGS(dev, reg, val),
306c92544dSBjoern A. Zeeb 	TP_STRUCT__entry(
316c92544dSBjoern A. Zeeb 		DEV_ENTRY
326c92544dSBjoern A. Zeeb 		REG_ENTRY
336c92544dSBjoern A. Zeeb 	),
346c92544dSBjoern A. Zeeb 	TP_fast_assign(
356c92544dSBjoern A. Zeeb 		DEV_ASSIGN;
366c92544dSBjoern A. Zeeb 		REG_ASSIGN;
376c92544dSBjoern A. Zeeb 	),
386c92544dSBjoern A. Zeeb 	TP_printk(
396c92544dSBjoern A. Zeeb 		DEV_PR_FMT REG_PR_FMT,
406c92544dSBjoern A. Zeeb 		DEV_PR_ARG, REG_PR_ARG
416c92544dSBjoern A. Zeeb 	)
426c92544dSBjoern A. Zeeb );
436c92544dSBjoern A. Zeeb 
446c92544dSBjoern A. Zeeb DEFINE_EVENT(dev_reg_evt, usb_reg_rr,
456c92544dSBjoern A. Zeeb 	TP_PROTO(struct mt76_dev *dev, u32 reg, u32 val),
466c92544dSBjoern A. Zeeb 	TP_ARGS(dev, reg, val)
476c92544dSBjoern A. Zeeb );
486c92544dSBjoern A. Zeeb 
496c92544dSBjoern A. Zeeb DEFINE_EVENT(dev_reg_evt, usb_reg_wr,
506c92544dSBjoern A. Zeeb 	TP_PROTO(struct mt76_dev *dev, u32 reg, u32 val),
516c92544dSBjoern A. Zeeb 	TP_ARGS(dev, reg, val)
526c92544dSBjoern A. Zeeb );
536c92544dSBjoern A. Zeeb 
546c92544dSBjoern A. Zeeb DECLARE_EVENT_CLASS(urb_transfer,
556c92544dSBjoern A. Zeeb 	TP_PROTO(struct mt76_dev *dev, struct urb *u),
566c92544dSBjoern A. Zeeb 	TP_ARGS(dev, u),
576c92544dSBjoern A. Zeeb 	TP_STRUCT__entry(
586c92544dSBjoern A. Zeeb 		DEV_ENTRY __field(unsigned int, pipe) __field(u32, len)
596c92544dSBjoern A. Zeeb 	),
606c92544dSBjoern A. Zeeb 	TP_fast_assign(
616c92544dSBjoern A. Zeeb 		DEV_ASSIGN;
626c92544dSBjoern A. Zeeb 		__entry->pipe = u->pipe;
636c92544dSBjoern A. Zeeb 		__entry->len = u->transfer_buffer_length;
646c92544dSBjoern A. Zeeb 	),
656c92544dSBjoern A. Zeeb 	TP_printk(DEV_PR_FMT "p:%08x len:%u",
666c92544dSBjoern A. Zeeb 		  DEV_PR_ARG, __entry->pipe, __entry->len)
676c92544dSBjoern A. Zeeb );
686c92544dSBjoern A. Zeeb 
696c92544dSBjoern A. Zeeb DEFINE_EVENT(urb_transfer, submit_urb,
706c92544dSBjoern A. Zeeb 	TP_PROTO(struct mt76_dev *dev, struct urb *u),
716c92544dSBjoern A. Zeeb 	TP_ARGS(dev, u)
726c92544dSBjoern A. Zeeb );
736c92544dSBjoern A. Zeeb 
746c92544dSBjoern A. Zeeb DEFINE_EVENT(urb_transfer, rx_urb,
756c92544dSBjoern A. Zeeb 	TP_PROTO(struct mt76_dev *dev, struct urb *u),
766c92544dSBjoern A. Zeeb 	TP_ARGS(dev, u)
776c92544dSBjoern A. Zeeb );
786c92544dSBjoern A. Zeeb 
796c92544dSBjoern A. Zeeb #endif
806c92544dSBjoern A. Zeeb 
816c92544dSBjoern A. Zeeb #undef TRACE_INCLUDE_PATH
826c92544dSBjoern A. Zeeb #define TRACE_INCLUDE_PATH .
836c92544dSBjoern A. Zeeb #undef TRACE_INCLUDE_FILE
846c92544dSBjoern A. Zeeb #define TRACE_INCLUDE_FILE usb_trace
856c92544dSBjoern A. Zeeb 
866c92544dSBjoern A. Zeeb #include <trace/define_trace.h>
87